# liblouis Table for Post-Translation Editing
#
#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by
#  The BRLTTY Team
#
#  Copyright (C) 2004-2006 ViewPlus Technologies, Inc. www.viewplus.com
#  Copyright (C) 2004-2006 JJB Software, Inc. www.jjb-software.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/>.

include chardefs.cti
repeated \s 0
always \ee\s`4 456-256
always \ee\s`1 6
always \ee\s`3 456-25
always \ee\s`2 456-23
always `7\s\eb 12356
always \ee\s`7 23456
always "\s 0
always \s,\s 6-0
noback context "\eb"[]$l"\ee" @56
noback context "\eb"[]","$l"\ee" @56

noback pass2 @1b-12 ?
noback pass2 @1b-15 ?
noback pass2 @1b-12-4-4 @4
