###############################################################################
# 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 - Finnish

# This table is very close to the official Finnish six dotbraille character set.

# 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 0-9 are represented by the letters j,a-i with dot 8 added
include num-dot8.tti

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

include common.tti
