# This table contains braille codes and rules for Sinhala grade 1 and includes English grade 1.
#
# Copyright (C) 2017 Access to success, 248/1 A, New city land, Kadawela, Katana, Sri Lanka
#
# 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/>.

# This table is built and maintained by the "Access to Success" under
# an activity of ABC (WIPO)-DLF capacity building project phase ii,
# Sri Lanka.

# Contributors: Ashoka Bandula Weerawardhana of Sri Lanka with the
# extensive support from Dipendra Manocha, and Sreeja param of India.

# Last updated on April 16, 2017

# To report any bugs or any suggestion, please write to asokabandula@gmail.com

include sin.cti
include en-in-g1.ctb
include tamil.cti
include text_nabcc.dis
