# liblouis: Croatian sub table for digits
#
#  Copyright (©) 2017. Zlatko Soboèan <zlatko.sobocan@tifloglobus.hr>
# by company Tiflo globus d.o.o. <http://www.tifloglobus.hr>
#
#  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/>.
#

# Croatian sub table for digits
#  Version 2017-06-15
# Created and maintained by zlatko Soboèan <zlatko.sobocan@tifloglobus.hr>
# by company Tiflo globus d.o.o. <http://www.tifloglobus.hr>
# If you found bugs with Croatian grade1 table, report it with following address:
# Zlatko Soboèan <zlatko.sobocan@tifloglobus.hr>
#

digit        0      346
digit        1      16
digit        2      34
digit        3      146
digit        4      1456
digit        5      156
digit        6      1246
digit        7      12456
digit        8      1256
digit        9      246
