###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2023 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

# BRLTTY Text Table - Italian

# the standard representations for the letters of the Latin alphabet
include ltr-latin.tti

# the standard representations for the Latin control characters
include ctl-latin.tti

# the numbers 1-9 are represented by the letters a-i with dot 6 added
# the number 0 is represented by dots 346
include num-dot6.tti

# generated by ttbtest: charset=iso-8859-1
char \x00	(  345 78)  # 00 ⣜   [NULL]
# Latin control characters  # 01-1A
char \x1B	(123 5678)  # 1B ⣷   [ESCAPE]
char \x1C	(  34  78)  # 1C ⣌   [INFORMATION SEPARATOR FOUR]
char \x1D	( 2345678)  # 1D ⣾   [INFORMATION SEPARATOR THREE]
char \x1E	( 234 678)  # 1E ⣮   [INFORMATION SEPARATOR TWO]
char \x1F	(   45678)  # 1F ⣸   [INFORMATION SEPARATOR ONE]
char \x20	(        )  # 20 ⠀   [SPACE]
char \x21	(    5   )  # 21 ⠐ ! [EXCLAMATION MARK]
char \x22	(   4    )  # 22 ⠈ " [QUOTATION MARK]
char \x23	(  3456  )  # 23 ⠼ # [NUMBER SIGN]
char \x24	(   4 6  )  # 24 ⠨ $ [DOLLAR SIGN]
char \x25	(123456  )  # 25 ⠿ % [PERCENT SIGN]
char \x26	(1234 6  )  # 26 ⠯ & [AMPERSAND]
char \x27	(     6  )  # 27 ⠠ ' [APOSTROPHE]
char \x28	( 23  6  )  # 28 ⠦ ( [LEFT PARENTHESIS]
char \x29	(  3 56  )  # 29 ⠴ ) [RIGHT PARENTHESIS]
char \x2A	(  3 5   )  # 2A ⠔ * [ASTERISK]
char \x2B	( 23 5   )  # 2B ⠖ + [PLUS SIGN]
char \x2C	( 2      )  # 2C ⠂ , [COMMA]
char \x2D	(  3  6  )  # 2D ⠤ - [HYPHEN-MINUS]
char \x2E	(  3     )  # 2E ⠄ . [FULL STOP]
char \x2F	( 2  56  )  # 2F ⠲ / [SOLIDUS]
# Hindu-Arabic numerals     # 30-39
char \x3A	( 2  5   )  # 3A ⠒ : [COLON]
char \x3B	( 23     )  # 3B ⠆ ; [SEMICOLON]
char \x3C	(    56  )  # 3C ⠰ < [LESS-THAN SIGN]
char \x3D	( 23 56  )  # 3D ⠶ = [EQUALS SIGN]
char \x3E	(   45   )  # 3E ⠘ > [GREATER-THAN SIGN]
char \x3F	( 2   6  )  # 3F ⠢ ? [QUESTION MARK]
char \x40	(  34 67 )  # 40 ⡬ @ [COMMERCIAL AT]
# uppercase Latin alphabet  # 41-5A
char \x5B	( 23  67 )  # 5B ⡦ [ [LEFT SQUARE BRACKET]
char \x5C	( 2  567 )  # 5C ⡲ \ [REVERSE SOLIDUS]
char \x5D	(  3 567 )  # 5D ⡴ ] [RIGHT SQUARE BRACKET]
char \x5E	( 234 67 )  # 5E ⡮ ^ [CIRCUMFLEX ACCENT]
char \x5F	(   456  )  # 5F ⠸ _ [LOW LINE]
char \x60	(  345   )  # 60 ⠜ ` [GRAVE ACCENT]
# lowercase Latin alphabet  # 61-7A
char \x7B	( 23  6 8)  # 7B ⢦ { [LEFT CURLY BRACKET]
char \x7C	( 2  56 8)  # 7C ⢲ | [VERTICAL LINE]
char \x7D	(  3 56 8)  # 7D ⢴ } [RIGHT CURLY BRACKET]
char \x7E	( 234 6 8)  # 7E ⢮ ~ [TILDE]
char \x7F	(      78)  # 7F ⣀   [DELETE]
char \xA1	(  3  67 )  # A1 ⡤ ¡ [INVERTED EXCLAMATION MARK]
char \xA2	(1  4 6 8)  # A2 ⢩ ¢ [CENT SIGN]
char \xA3	(   4 67 )  # A3 ⡨ £ [POUND SIGN]
char \xA4	(12345678)  # A4 ⣿ ¤ [CURRENCY SIGN]
char \xA5	(   4 6 8)  # A5 ⢨ ¥ [YEN SIGN]
char \xA6	( 23 56  )  # A6 ⠶ ¦ [BROKEN BAR]
char \xA7	(12345678)  # A7 ⣿ § [SECTION SIGN]
char \xA8	(  3  6  )  # A8 ⠤ ¨ [DIAERESIS]
char \xA9	(  3  6  )  # A9 ⠤ © [COPYRIGHT SIGN]
char \xAA	(12  5  8)  # AA ⢓ ª [FEMININE ORDINAL INDICATOR]
char \xAB	(    5678)  # AB ⣰ « [LEFT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xAC	(  3  6  )  # AC ⠤ ¬ [NOT SIGN]
char \xAD	(    5 78)  # AD ⣐ ­ [SOFT HYPHEN]
char \xAE	(  3  6  )  # AE ⠤ ® [REGISTERED SIGN]
char \xAF	( 23 56  )  # AF ⠶ ¯ [MACRON]
char \xB0	(  34   8)  # B0 ⢌ ° [DEGREE SIGN]
char \xB1	( 23 5 78)  # B1 ⣖ ± [PLUS-MINUS SIGN]
char \xB2	(12     8)  # B2 ⢃ ² [SUPERSCRIPT TWO]
char \xB3	(   456 8)  # B3 ⢸ ³ [SUPERSCRIPT THREE]
char \xB4	(   456 8)  # B4 ⢸ ´ [ACUTE ACCENT]
char \xB5	(1 34 6 8)  # B5 ⢭ µ [MICRO SIGN]
char \xB6	(12345678)  # B6 ⣿ ¶ [PILCROW SIGN]
char \xB7	(      7 )  # B7 ⡀ · [MIDDLE DOT]
char \xB8	( 23 56  )  # B8 ⠶ ¸ [CEDILLA]
char \xB9	(   456 8)  # B9 ⢸ ¹ [SUPERSCRIPT ONE]
char \xBA	( 2 45  8)  # BA ⢚ º [MASCULINE ORDINAL INDICATOR]
char \xBB	(   45 78)  # BB ⣘ » [RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xBC	(123  6 8)  # BC ⢧ ¼ [VULGAR FRACTION ONE QUARTER]
char \xBD	(  3   7 )  # BD ⡄ ½ [VULGAR FRACTION ONE HALF]
char \xBE	( 23 56  )  # BE ⠶ ¾ [VULGAR FRACTION THREE QUARTERS]
char \xBF	(     6 8)  # BF ⢠ ¿ [INVERTED QUESTION MARK]
char \xC0	(  3  6  )  # C0 ⠤ À [LATIN CAPITAL LETTER A WITH GRAVE]
char \xC1	(  3  6  )  # C1 ⠤ Á [LATIN CAPITAL LETTER A WITH ACUTE]
char \xC2	(  3  6  )  # C2 ⠤ Â [LATIN CAPITAL LETTER A WITH CIRCUMFLEX]
char \xC3	(   456 8)  # C3 ⢸ Ã [LATIN CAPITAL LETTER A WITH TILDE]
char \xC4	(123 567 )  # C4 ⡷ Ä [LATIN CAPITAL LETTER A WITH DIAERESIS]
char \xC5	(  345678)  # C5 ⣼ Å [LATIN CAPITAL LETTER A WITH RING ABOVE]
char \xC6	(   4  78)  # C6 ⣈ Æ [LATIN CAPITAL LETTER AE]
char \xC7	(1234 67 )  # C7 ⡯ Ç [LATIN CAPITAL LETTER C WITH CEDILLA]
char \xC8	( 23 56  )  # C8 ⠶ È [LATIN CAPITAL LETTER E WITH GRAVE]
char \xC9	( 2   678)  # C9 ⣢ É [LATIN CAPITAL LETTER E WITH ACUTE]
char \xCA	( 23 56  )  # CA ⠶ Ê [LATIN CAPITAL LETTER E WITH CIRCUMFLEX]
char \xCB	( 23 56  )  # CB ⠶ Ë [LATIN CAPITAL LETTER E WITH DIAERESIS]
char \xCC	(   456 8)  # CC ⢸ Ì [LATIN CAPITAL LETTER I WITH GRAVE]
char \xCD	( 23 56  )  # CD ⠶ Í [LATIN CAPITAL LETTER I WITH ACUTE]
char \xCE	(   456 8)  # CE ⢸ Î [LATIN CAPITAL LETTER I WITH CIRCUMFLEX]
char \xCF	( 23 56  )  # CF ⠶ Ï [LATIN CAPITAL LETTER I WITH DIAERESIS]
char \xD0	(  3  6  )  # D0 ⠤ Ð [LATIN CAPITAL LETTER ETH]
char \xD1	(1 34   8)  # D1 ⢍ Ñ [LATIN CAPITAL LETTER N WITH TILDE]
char \xD2	(  3  6  )  # D2 ⠤ Ò [LATIN CAPITAL LETTER O WITH GRAVE]
char \xD3	(  3  6  )  # D3 ⠤ Ó [LATIN CAPITAL LETTER O WITH ACUTE]
char \xD4	( 23 56  )  # D4 ⠶ Ô [LATIN CAPITAL LETTER O WITH CIRCUMFLEX]
char \xD5	( 23 56  )  # D5 ⠶ Õ [LATIN CAPITAL LETTER O WITH TILDE]
char \xD6	(  34  7 )  # D6 ⡌ Ö [LATIN CAPITAL LETTER O WITH DIAERESIS]
char \xD7	(   456 8)  # D7 ⢸ × [MULTIPLICATION SIGN]
char \xD8	(   456 8)  # D8 ⢸ Ø [LATIN CAPITAL LETTER O WITH STROKE]
char \xD9	(  3  6  )  # D9 ⠤ Ù [LATIN CAPITAL LETTER U WITH GRAVE]
char \xDA	(  3  6  )  # DA ⠤ Ú [LATIN CAPITAL LETTER U WITH ACUTE]
char \xDB	(12345678)  # DB ⣿ Û [LATIN CAPITAL LETTER U WITH CIRCUMFLEX]
char \xDC	( 234567 )  # DC ⡾ Ü [LATIN CAPITAL LETTER U WITH DIAERESIS]
char \xDD	(   456 8)  # DD ⢸ Ý [LATIN CAPITAL LETTER Y WITH ACUTE]
char \xDE	(   456 8)  # DE ⢸ Þ [LATIN CAPITAL LETTER THORN]
char \xDF	( 234 6  )  # DF ⠮ ß [LATIN SMALL LETTER SHARP S]
char \xE0	(1      8)  # E0 ⢁ à [LATIN SMALL LETTER A WITH GRAVE]
char \xE1	(1    6 8)  # E1 ⢡ á [LATIN SMALL LETTER A WITH ACUTE]
char \xE2	(1    678)  # E2 ⣡ â [LATIN SMALL LETTER A WITH CIRCUMFLEX]
char \xE3	(1234   8)  # E3 ⢏ ã [LATIN SMALL LETTER A WITH TILDE]
char \xE4	(123 56  )  # E4 ⠷ ä [LATIN SMALL LETTER A WITH DIAERESIS]
char \xE5	(  34567 )  # E5 ⡼ å [LATIN SMALL LETTER A WITH RING ABOVE]
char \xE6	(   4  7 )  # E6 ⡈ æ [LATIN SMALL LETTER AE]
char \xE7	(1234 678)  # E7 ⣯ ç [LATIN SMALL LETTER C WITH CEDILLA]
char \xE8	(1   5  8)  # E8 ⢑ è [LATIN SMALL LETTER E WITH GRAVE]
char \xE9	(1   56 8)  # E9 ⢱ é [LATIN SMALL LETTER E WITH ACUTE]
char \xEA	(12   678)  # EA ⣣ ê [LATIN SMALL LETTER E WITH CIRCUMFLEX]
char \xEB	(12 4 6 8)  # EB ⢫ ë [LATIN SMALL LETTER E WITH DIAERESIS]
char \xEC	( 2 4   8)  # EC ⢊ ì [LATIN SMALL LETTER I WITH GRAVE]
char \xED	(  3 5 7 )  # ED ⡔ í [LATIN SMALL LETTER I WITH ACUTE]
char \xEE	(1  4 67 )  # EE ⡩ î [LATIN SMALL LETTER I WITH CIRCUMFLEX]
char \xEF	(12 456 8)  # EF ⢻ ï [LATIN SMALL LETTER I WITH DIAERESIS]
char \xF0	(  3  6 8)  # F0 ⢤ ð [LATIN SMALL LETTER ETH]
char \xF1	(1 345  8)  # F1 ⢝ ñ [LATIN SMALL LETTER N WITH TILDE]
char \xF2	(1 3 5  8)  # F2 ⢕ ò [LATIN SMALL LETTER O WITH GRAVE]
char \xF3	( 2 4 6 8)  # F3 ⢪ ó [LATIN SMALL LETTER O WITH ACUTE]
char \xF4	(1  45678)  # F4 ⣹ ô [LATIN SMALL LETTER O WITH CIRCUMFLEX]
char \xF5	(  345  8)  # F5 ⢜ õ [LATIN SMALL LETTER O WITH TILDE]
char \xF6	(  34    )  # F6 ⠌ ö [LATIN SMALL LETTER O WITH DIAERESIS]
char \xF7	(12  5678)  # F7 ⣳ ÷ [DIVISION SIGN]
char \xF8	(12345678)  # F8 ⣿ ø [LATIN SMALL LETTER O WITH STROKE]
char \xF9	(1 3  6 8)  # F9 ⢥ ù [LATIN SMALL LETTER U WITH GRAVE]
char \xFA	(1 3  678)  # FA ⣥ ú [LATIN SMALL LETTER U WITH ACUTE]
char \xFB	(1   5678)  # FB ⣱ û [LATIN SMALL LETTER U WITH CIRCUMFLEX]
char \xFC	( 23456  )  # FC ⠾ ü [LATIN SMALL LETTER U WITH DIAERESIS]
char \xFD	(12345678)  # FD ⣿ ý [LATIN SMALL LETTER Y WITH ACUTE]
char \xFE	(  3  678)  # FE ⣤ þ [LATIN SMALL LETTER THORN]
char \xFF	(   456 8)  # FF ⢸ ÿ [LATIN SMALL LETTER Y WITH DIAERESIS]

include common.tti
