# *******************************************************************************
# * Copyright (C) 2009, International Business Machines
# * Corporation and others.  All Rights Reserved.
# *******************************************************************************
#
# test5.ucm
#
# Test file for MBCS conversion with three-byte codepage data.
# Also contains extension mappings (m:n).

<code_set_name>     "test5"
<mb_cur_max>        3
<mb_cur_min>        1
<uconv_class>       "MBCS"
<subchar>           \xff
<icu:state>         0, 1:1, 5-9, ff
<icu:state>         2:2, 3, 7, 4.p, a-d.u
<icu:state>         a-f.p
CHARMAP

<U0006>     \x06 |0
<U102345>   \x09 |0
<U0034>     \x01\x03 |3
<U0074>     \x01\x07 |1

# extensions
<U00c0>     \x05+\x01\x02\x0d |0

END CHARMAP
