1 /*
2  * Copyright (C) 2008-2012  OMRON SOFTWARE Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 /**
17  * approxPatternEnToUpper
18  */
19 static const PREDEF_APPROX_PATTERN approxPatternEnToUpper = {
20 	/* size */
21 	26,
22 	/* from */
23 	( NJ_UINT8* )
24 	"\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68"
25 	"\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70"
26 	"\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78"
27 	"\x00\x79\x00\x7a",
28 	/* to */
29 	( NJ_UINT8* )
30 	"\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48"
31 	"\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50"
32 	"\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58"
33 	"\x00\x59\x00\x5a"
34 };
35 
36 /**
37  * approxPatternEnToLower
38  */
39 static const PREDEF_APPROX_PATTERN approxPatternEnToLower = {
40 	/* size */
41 	26,
42 	/* from */
43 	( NJ_UINT8* )
44 	"\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48"
45 	"\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50"
46 	"\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58"
47 	"\x00\x59\x00\x5a",
48 	/* to */
49 	( NJ_UINT8* )
50 	"\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68"
51 	"\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70"
52 	"\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78"
53 	"\x00\x79\x00\x7a"
54 };
55 
56 /**
57  * approxPatternEnQwertyNear
58  */
59 static const PREDEF_APPROX_PATTERN approxPatternEnQwertyNear = {
60 	/* size */
61 	110,
62 	/* from */
63 	( NJ_UINT8* )
64 	"\x00\x61\x00\x61\x00\x61\x00\x61\x00\x62\x00\x62\x00\x62\x00\x62"
65 	"\x00\x63\x00\x63\x00\x63\x00\x63\x00\x64\x00\x64\x00\x64\x00\x64"
66 	"\x00\x64\x00\x64\x00\x65\x00\x65\x00\x65\x00\x65\x00\x66\x00\x66"
67 	"\x00\x66\x00\x66\x00\x66\x00\x66\x00\x67\x00\x67\x00\x67\x00\x67"
68 	"\x00\x67\x00\x67\x00\x68\x00\x68\x00\x68\x00\x68\x00\x68\x00\x68"
69 	"\x00\x69\x00\x69\x00\x69\x00\x69\x00\x6a\x00\x6a\x00\x6a\x00\x6a"
70 	"\x00\x6a\x00\x6a\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6c"
71 	"\x00\x6c\x00\x6c\x00\x6d\x00\x6d\x00\x6d\x00\x6e\x00\x6e\x00\x6e"
72 	"\x00\x6e\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x70\x00\x70\x00\x71"
73 	"\x00\x71\x00\x72\x00\x72\x00\x72\x00\x72\x00\x73\x00\x73\x00\x73"
74 	"\x00\x73\x00\x73\x00\x73\x00\x74\x00\x74\x00\x74\x00\x74\x00\x75"
75 	"\x00\x75\x00\x75\x00\x75\x00\x76\x00\x76\x00\x76\x00\x76\x00\x77"
76 	"\x00\x77\x00\x77\x00\x77\x00\x78\x00\x78\x00\x78\x00\x78\x00\x79"
77 	"\x00\x79\x00\x79\x00\x79\x00\x7a\x00\x7a\x00\x7a",
78 	/* to */
79 	( NJ_UINT8* )
80 	"\x00\x71\x00\x77\x00\x73\x00\x7a\x00\x76\x00\x67\x00\x68\x00\x6e"
81 	"\x00\x78\x00\x64\x00\x66\x00\x76\x00\x65\x00\x72\x00\x66\x00\x63"
82 	"\x00\x78\x00\x73\x00\x72\x00\x64\x00\x73\x00\x77\x00\x72\x00\x74"
83 	"\x00\x67\x00\x76\x00\x63\x00\x64\x00\x74\x00\x79\x00\x68\x00\x62"
84 	"\x00\x76\x00\x66\x00\x79\x00\x75\x00\x6a\x00\x6e\x00\x62\x00\x67"
85 	"\x00\x6f\x00\x6b\x00\x6a\x00\x75\x00\x75\x00\x69\x00\x6b\x00\x6d"
86 	"\x00\x6e\x00\x68\x00\x69\x00\x6f\x00\x6c\x00\x6d\x00\x6a\x00\x6b"
87 	"\x00\x6f\x00\x70\x00\x6e\x00\x6a\x00\x6b\x00\x62\x00\x68\x00\x6a"
88 	"\x00\x6d\x00\x70\x00\x6c\x00\x6b\x00\x69\x00\x6c\x00\x6f\x00\x77"
89 	"\x00\x61\x00\x74\x00\x66\x00\x64\x00\x65\x00\x65\x00\x64\x00\x78"
90 	"\x00\x7a\x00\x61\x00\x77\x00\x79\x00\x67\x00\x66\x00\x72\x00\x69"
91 	"\x00\x6a\x00\x68\x00\x79\x00\x63\x00\x66\x00\x67\x00\x62\x00\x65"
92 	"\x00\x73\x00\x61\x00\x71\x00\x7a\x00\x73\x00\x64\x00\x63\x00\x75"
93 	"\x00\x68\x00\x67\x00\x74\x00\x61\x00\x73\x00\x78"
94 };
95 
96 /**
97  * approxPatternEnQwertyNearUpper
98  */
99 static const PREDEF_APPROX_PATTERN approxPatternEnQwertyNearUpper = {
100 	/* size */
101 	110,
102 	/* from */
103 	( NJ_UINT8* )
104 	"\x00\x61\x00\x61\x00\x61\x00\x61\x00\x62\x00\x62\x00\x62\x00\x62"
105 	"\x00\x63\x00\x63\x00\x63\x00\x63\x00\x64\x00\x64\x00\x64\x00\x64"
106 	"\x00\x64\x00\x64\x00\x65\x00\x65\x00\x65\x00\x65\x00\x66\x00\x66"
107 	"\x00\x66\x00\x66\x00\x66\x00\x66\x00\x67\x00\x67\x00\x67\x00\x67"
108 	"\x00\x67\x00\x67\x00\x68\x00\x68\x00\x68\x00\x68\x00\x68\x00\x68"
109 	"\x00\x69\x00\x69\x00\x69\x00\x69\x00\x6a\x00\x6a\x00\x6a\x00\x6a"
110 	"\x00\x6a\x00\x6a\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6b\x00\x6c"
111 	"\x00\x6c\x00\x6c\x00\x6d\x00\x6d\x00\x6d\x00\x6e\x00\x6e\x00\x6e"
112 	"\x00\x6e\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x70\x00\x70\x00\x71"
113 	"\x00\x71\x00\x72\x00\x72\x00\x72\x00\x72\x00\x73\x00\x73\x00\x73"
114 	"\x00\x73\x00\x73\x00\x73\x00\x74\x00\x74\x00\x74\x00\x74\x00\x75"
115 	"\x00\x75\x00\x75\x00\x75\x00\x76\x00\x76\x00\x76\x00\x76\x00\x77"
116 	"\x00\x77\x00\x77\x00\x77\x00\x78\x00\x78\x00\x78\x00\x78\x00\x79"
117 	"\x00\x79\x00\x79\x00\x79\x00\x7a\x00\x7a\x00\x7a",
118 	/* to */
119 	( NJ_UINT8* )
120 	"\x00\x51\x00\x57\x00\x53\x00\x5a\x00\x56\x00\x47\x00\x48\x00\x4e"
121 	"\x00\x58\x00\x44\x00\x46\x00\x56\x00\x45\x00\x52\x00\x46\x00\x43"
122 	"\x00\x58\x00\x53\x00\x52\x00\x44\x00\x53\x00\x57\x00\x52\x00\x54"
123 	"\x00\x47\x00\x56\x00\x43\x00\x44\x00\x54\x00\x59\x00\x48\x00\x42"
124 	"\x00\x56\x00\x46\x00\x59\x00\x55\x00\x4a\x00\x4e\x00\x42\x00\x47"
125 	"\x00\x4f\x00\x4b\x00\x4a\x00\x55\x00\x55\x00\x49\x00\x4b\x00\x4d"
126 	"\x00\x4e\x00\x48\x00\x49\x00\x4f\x00\x4c\x00\x4d\x00\x4a\x00\x4b"
127 	"\x00\x4f\x00\x50\x00\x4e\x00\x4a\x00\x4b\x00\x42\x00\x48\x00\x4a"
128 	"\x00\x4d\x00\x50\x00\x4c\x00\x4b\x00\x49\x00\x4c\x00\x4f\x00\x57"
129 	"\x00\x41\x00\x54\x00\x46\x00\x44\x00\x45\x00\x45\x00\x44\x00\x58"
130 	"\x00\x5a\x00\x41\x00\x57\x00\x59\x00\x47\x00\x46\x00\x52\x00\x49"
131 	"\x00\x4a\x00\x48\x00\x59\x00\x43\x00\x46\x00\x47\x00\x42\x00\x45"
132 	"\x00\x53\x00\x41\x00\x51\x00\x5a\x00\x53\x00\x44\x00\x43\x00\x55"
133 	"\x00\x48\x00\x47\x00\x54\x00\x41\x00\x53\x00\x58"
134 };
135 
136 /**
137  * approxPatternJAJP12keyNormal
138  */
139 static const PREDEF_APPROX_PATTERN approxPatternJAJP12keyNormal = {
140 	/* size */
141 	37,
142 	/* from */
143 	( NJ_UINT8* )
144 	"\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f"
145 	"\x30\x51\x30\x53\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f"
146 	"\x30\x61\x30\x64\x30\x64\x30\x66\x30\x68\x30\x6f\x30\x72\x30\x75"
147 	"\x30\x78\x30\x7b\x30\x6f\x30\x72\x30\x75\x30\x78\x30\x7b\x30\x84"
148 	"\x30\x86\x30\x88\x30\x8f\x30\x9b\x30\x9c",
149 	/* to */
150 	( NJ_UINT8* )
151 	"\x30\x41\x30\x43\x30\x45\x30\x47\x30\x49\x30\x4c\x30\x4e\x30\x50"
152 	"\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60"
153 	"\x30\x62\x30\x63\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76"
154 	"\x30\x79\x30\x7c\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x83"
155 	"\x30\x85\x30\x87\x30\x8e\x30\x9c\x30\x9b"
156 };
157 
158 /**
159  * tables
160  */
161 static const PREDEF_APPROX_PATTERN* predefinedApproxPatterns[] = {
162 	&approxPatternEnToUpper, &approxPatternEnToLower, &approxPatternEnQwertyNear, &approxPatternEnQwertyNearUpper, &approxPatternJAJP12keyNormal, NULL
163 };
164