# liblouis:  Portuguese 8 dot Computer braille table
#
#  Copyright (C) 2012 Rui Fontes <rui.fontes@tiflotecnia.com>
#  Copyright (C) 2012 Mesar Hameed <mesar.hameed@gmail.com>
#
#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  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.
#
#  liblouis is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.

space \t 9 tab
space \s 0 blank
space \x00a0 a unbreakable space
sign \x000a 78 newline
space \x000d 0 carriage return
include digits8Dots.uti
include latinLetterDef8Dots.uti
punctuation , 2
punctuation ; 23
punctuation : 25
punctuation . 3
punctuation ! 2358
punctuation " 236
punctuation ' 6
punctuation ( 1268
punctuation ) 3458
punctuation - 36
sign _ 367
math < 2468
math = 2356
math > 1358
sign % 35678
math + 235
math ~ 2346
sign ` 14678
sign & 123468
sign $ 46
punctuation ? 26
punctuation { 1238
punctuation [ 123568
punctuation } 4567
punctuation ] 234568
sign ^ 234678
sign @ 156
sign # 3456
sign \\ 38
sign | 456
math / 256
sign * 35
uplow \x00c0\x00e0 12467,1246 # Àà
uplow \x00c1\x00e1 123567,12356 # Áá
uplow \x00c2\x00e2 167,16 # Ââ
uplow \x00c3\x00e3 3457,345 # Ãã
uplow \x00c4\x00e4 34578,3458 # Ää
uplow \x00c7\x00e7 123467,12346 # Çç
uplow \x00c8\x00e8 234678,23468 # Èè
uplow \x00c9\x00e9 1234567,123456 # Éé
uplow \x00ca\x00ea 1267,126 # Êê
uplow \x00cc\x00ec 14678,1468 # Ìì
uplow \x00cd\x00ed 347,34 # Íí
uplow \x00ce\x00ee 1467,146 # Îî 
uplow \x00d2\x00f2 245678,24568 # Òò
uplow \x00d3\x00f3 3467,346 # Óó
uplow \x00d4\x00f4 14567,1456 # Ôô
uplow \x00d5\x00f5 2467,246 # Õõ
uplow \x00d6\x00f6 2467,246 # Öö
uplow \x00d9\x00f9 15678,1568 # Ùù
uplow \x00da\x00fa 234567,23456 # Úú
uplow \x00dc\x00fc 12567,1256 # Üü
sign \x00ba 13578 # 
sign \x00aa 178 # ª
sign \x20ac 1578
sign \x00ae 12358
sign \x2122 1348
sign \x00ab 1235678 # «
sign \x00bb 2345678 # »
sign \x00a3 12378 # £
sign \x00a7 2348 # §
uplow \x00d1\x00f1 134578,13458 # Ññ

noback sign \X25CF 35	# 9679 black circle
