xref: /freebsd/sys/dev/usb/net/if_kuefw.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1 /*-
2  * SPDX-License-Identifier: BSD-4-Clause
3  *
4  * Copyright (c) 1997, 1998, 1999, 2000
5  *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  * 3. All advertising materials mentioning features or use of this software
16  *    must display the following acknowledgement:
17  *	This product includes software developed by Bill Paul.
18  * 4. Neither the name of the author nor the names of any co-contributors
19  *    may be used to endorse or promote products derived from this software
20  *    without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
23  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25  * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
26  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
32  * THE POSSIBILITY OF SUCH DAMAGE.
33  */
34 
35 /*
36  * This file contains the firmware needed to make the KLSI chip work,
37  * along with a few constants related to the QT Engine microcontroller
38  * embedded in the KLSI part.
39  *
40  * Firmware is loaded using the vendor-specific 'send scan data'
41  * command (0xFF). The basic operation is that we must load the
42  * firmware, then issue some trigger commands to fix it up and start
43  * it running. There are three transfers: load the binary code,
44  * load the 'fixup' (data segment?), then issue a command to
45  * start the code firmware running. The data itself is prefixed by
46  * a 16-bit signature word, a 16-bit length value, a type byte
47  * and an interrupt (command) byte. The code segment is of type
48  * 0x02 (replacement interrupt vector data) and the fixup segment
49  * is of type 0x03 (replacement interrupt fixup data). The interrupt
50  * code is 0x64 (load new code). The length word is the total length
51  * of the segment minus 7. I precomputed the values and stuck them
52  * into the appropriate locations within the segments to save some
53  * work in the driver.
54  */
55 
56 /* QT controller data block types. */
57 /* Write data into specific memory location. */
58 #define	KUE_QTBTYPE_WRITE_DATA		0x00
59 /* Write data into interrupt vector location */
60 #define	KUE_QTBTYPE_WRITE_INTVEC	0x01
61 /* Replace interrupt vector with this data */
62 #define	KUE_QTBTYPE_REPL_INTVEC		0x02
63 /* Fixup interrupt vector code with this data */
64 #define	KUE_QTBTYPE_FIXUP_INTVEC	0x03
65 /* Force jump to location */
66 #define	KUE_QTBTYPE_JUMP		0x04
67 /* Force call to location */
68 #define	KUE_QTBTYPE_CALL		0x05
69 /* Force interrupt call */
70 #define	KUE_QTBTYPE_CALLINTR		0x06
71 /*
72  * Cause data to be written using the specified QT engine
73  * interrupt, from starting location in memory for a specified
74  * number of bytes.
75  */
76 #define	KUE_QTBTYPE_WRITE_WITH_INTR	0x07
77 /* Cause data from stream to be written using specified QT interrupt. */
78 #define	KUE_QTBTYPE_WRITE_STR_WITH_INTR	0x08
79 /* Cause data to be written to config locations. */
80 /* Addresses assume 0xc000 offset. */
81 #define	KUE_QTBTYPE_WRITE_CONFIG	0x09
82 
83 #define	KUE_QTINTR_LOAD_CODE		0x64
84 #define	KUE_QTINTR_TRIGGER_CODE		0x3B
85 #define	KUE_QTINTR_LOAD_CODE_HIGH	0x9C
86 
87 /* Firmware code segment */
88 static unsigned char kue_code_seg[] =
89 {
90 	/******************************************/
91 	/* NOTE: B6/C3 is data header signature   */
92 	/* 0xAA/0xBB is data length = total */
93 	/* bytes - 7, 0xCC is type, 0xDD is */
94 	/* interrupt to use.                */
95 	/******************************************/
96 	0xB6, 0xC3, 0xf7, 0x0e, 0x02, 0x64,
97 	0x9f, 0xcf, 0xbc, 0x08, 0xe7, 0x57, 0x00, 0x00,
98 	0x9a, 0x08, 0x97, 0xc1, 0xe7, 0x67, 0xff, 0x1f,
99 	0x28, 0xc0, 0xe7, 0x87, 0x00, 0x04, 0x24, 0xc0,
100 	0xe7, 0x67, 0xff, 0xf9, 0x22, 0xc0, 0x97, 0xcf,
101 	0xe7, 0x09, 0xa2, 0xc0, 0x94, 0x08, 0xd7, 0x09,
102 	0x00, 0xc0, 0xe7, 0x59, 0xba, 0x08, 0x94, 0x08,
103 	0x03, 0xc1, 0xe7, 0x67, 0xff, 0xf7, 0x24, 0xc0,
104 	0xe7, 0x05, 0x00, 0xc0, 0xa7, 0xcf, 0x92, 0x08,
105 	0xe7, 0x57, 0x00, 0x00, 0x8e, 0x08, 0xa7, 0xa1,
106 	0x8e, 0x08, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
107 	0xf2, 0x09, 0x0a, 0xc0, 0xe7, 0x57, 0x00, 0x00,
108 	0xa4, 0xc0, 0xa7, 0xc0, 0x56, 0x08, 0x9f, 0xaf,
109 	0x70, 0x09, 0xe7, 0x07, 0x00, 0x00, 0xf2, 0x09,
110 	0xe7, 0x57, 0xff, 0xff, 0x90, 0x08, 0x9f, 0xa0,
111 	0x40, 0x00, 0xe7, 0x59, 0x90, 0x08, 0x94, 0x08,
112 	0x9f, 0xa0, 0x40, 0x00, 0xc8, 0x09, 0xa2, 0x08,
113 	0x08, 0x62, 0x9f, 0xa1, 0x14, 0x0a, 0xe7, 0x57,
114 	0x00, 0x00, 0x52, 0x08, 0xa7, 0xc0, 0x56, 0x08,
115 	0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x57, 0x00, 0x00,
116 	0x8e, 0x08, 0xa7, 0xc1, 0x56, 0x08, 0xc0, 0x09,
117 	0xa8, 0x08, 0x00, 0x60, 0x05, 0xc4, 0xc0, 0x59,
118 	0x94, 0x08, 0x02, 0xc0, 0x9f, 0xaf, 0xee, 0x00,
119 	0xe7, 0x59, 0xae, 0x08, 0x94, 0x08, 0x02, 0xc1,
120 	0x9f, 0xaf, 0xf6, 0x00, 0x9f, 0xaf, 0x9e, 0x03,
121 	0xef, 0x57, 0x00, 0x00, 0xf0, 0x09, 0x9f, 0xa1,
122 	0xde, 0x01, 0xe7, 0x57, 0x00, 0x00, 0x78, 0x08,
123 	0x9f, 0xa0, 0xe4, 0x03, 0x9f, 0xaf, 0x2c, 0x04,
124 	0xa7, 0xcf, 0x56, 0x08, 0x48, 0x02, 0xe7, 0x09,
125 	0x94, 0x08, 0xa8, 0x08, 0xc8, 0x37, 0x04, 0x00,
126 	0x9f, 0xaf, 0x68, 0x04, 0x97, 0xcf, 0xe7, 0x57,
127 	0x00, 0x00, 0xa6, 0x08, 0x97, 0xc0, 0xd7, 0x09,
128 	0x00, 0xc0, 0xc1, 0xdf, 0xc8, 0x09, 0x9c, 0x08,
129 	0x08, 0x62, 0x1d, 0xc0, 0x27, 0x04, 0x9c, 0x08,
130 	0x10, 0x94, 0xf0, 0x07, 0xee, 0x09, 0x02, 0x00,
131 	0xc1, 0x07, 0x01, 0x00, 0x70, 0x00, 0x04, 0x00,
132 	0xf0, 0x07, 0x44, 0x01, 0x06, 0x00, 0x50, 0xaf,
133 	0xe7, 0x09, 0x94, 0x08, 0xae, 0x08, 0xe7, 0x17,
134 	0x14, 0x00, 0xae, 0x08, 0xe7, 0x67, 0xff, 0x07,
135 	0xae, 0x08, 0xe7, 0x07, 0xff, 0xff, 0xa8, 0x08,
136 	0xe7, 0x07, 0x00, 0x00, 0xa6, 0x08, 0xe7, 0x05,
137 	0x00, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
138 	0xc1, 0xdf, 0x48, 0x02, 0xd0, 0x09, 0x9c, 0x08,
139 	0x27, 0x02, 0x9c, 0x08, 0xe7, 0x09, 0x20, 0xc0,
140 	0xee, 0x09, 0xe7, 0xd0, 0xee, 0x09, 0xe7, 0x05,
141 	0x00, 0xc0, 0x97, 0xcf, 0x48, 0x02, 0xc8, 0x37,
142 	0x04, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x60,
143 	0x21, 0xc0, 0xc0, 0x37, 0x3e, 0x00, 0x23, 0xc9,
144 	0xc0, 0x57, 0xb4, 0x05, 0x1b, 0xc8, 0xc0, 0x17,
145 	0x3f, 0x00, 0xc0, 0x67, 0xc0, 0xff, 0x30, 0x00,
146 	0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00,
147 	0x00, 0x02, 0xc0, 0x17, 0x4c, 0x00, 0x30, 0x00,
148 	0x06, 0x00, 0xf0, 0x07, 0xbe, 0x01, 0x0a, 0x00,
149 	0x48, 0x02, 0xc1, 0x07, 0x02, 0x00, 0xd7, 0x09,
150 	0x00, 0xc0, 0xc1, 0xdf, 0x51, 0xaf, 0xe7, 0x05,
151 	0x00, 0xc0, 0x97, 0xcf, 0x9f, 0xaf, 0x68, 0x04,
152 	0x9f, 0xaf, 0xe4, 0x03, 0x97, 0xcf, 0x9f, 0xaf,
153 	0xe4, 0x03, 0xc9, 0x37, 0x04, 0x00, 0xc1, 0xdf,
154 	0xc8, 0x09, 0x70, 0x08, 0x50, 0x02, 0x67, 0x02,
155 	0x70, 0x08, 0xd1, 0x07, 0x00, 0x00, 0xc0, 0xdf,
156 	0x9f, 0xaf, 0xde, 0x01, 0x97, 0xcf, 0xe7, 0x57,
157 	0x00, 0x00, 0xaa, 0x08, 0x97, 0xc1, 0xe7, 0x57,
158 	0x01, 0x00, 0x7a, 0x08, 0x97, 0xc0, 0xc8, 0x09,
159 	0x6e, 0x08, 0x08, 0x62, 0x97, 0xc0, 0x00, 0x02,
160 	0xc0, 0x17, 0x0e, 0x00, 0x27, 0x00, 0x34, 0x01,
161 	0x27, 0x0c, 0x0c, 0x00, 0x36, 0x01, 0xef, 0x57,
162 	0x00, 0x00, 0xf0, 0x09, 0x9f, 0xc0, 0xbe, 0x02,
163 	0xe7, 0x57, 0x00, 0x00, 0xb0, 0x08, 0x97, 0xc1,
164 	0xe7, 0x07, 0x09, 0x00, 0x12, 0xc0, 0xe7, 0x77,
165 	0x00, 0x08, 0x20, 0xc0, 0x9f, 0xc1, 0xb6, 0x02,
166 	0xe7, 0x57, 0x09, 0x00, 0x12, 0xc0, 0x77, 0xc9,
167 	0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x77,
168 	0x00, 0x08, 0x20, 0xc0, 0x2f, 0xc1, 0xe7, 0x07,
169 	0x00, 0x00, 0x42, 0xc0, 0xe7, 0x07, 0x05, 0x00,
170 	0x90, 0xc0, 0xc8, 0x07, 0x0a, 0x00, 0xe7, 0x77,
171 	0x04, 0x00, 0x20, 0xc0, 0x09, 0xc1, 0x08, 0xda,
172 	0x7a, 0xc1, 0xe7, 0x07, 0x00, 0x01, 0x42, 0xc0,
173 	0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0, 0x1a, 0xcf,
174 	0xe7, 0x07, 0x01, 0x00, 0x7a, 0x08, 0x00, 0xd8,
175 	0x27, 0x50, 0x34, 0x01, 0x17, 0xc1, 0xe7, 0x77,
176 	0x02, 0x00, 0x20, 0xc0, 0x79, 0xc1, 0x27, 0x50,
177 	0x34, 0x01, 0x10, 0xc1, 0xe7, 0x77, 0x02, 0x00,
178 	0x20, 0xc0, 0x79, 0xc0, 0x9f, 0xaf, 0xd8, 0x02,
179 	0xe7, 0x05, 0x00, 0xc0, 0x00, 0x60, 0x9f, 0xc0,
180 	0xde, 0x01, 0x97, 0xcf, 0xe7, 0x07, 0x01, 0x00,
181 	0xb8, 0x08, 0x06, 0xcf, 0xe7, 0x07, 0x30, 0x0e,
182 	0x02, 0x00, 0xe7, 0x07, 0x50, 0xc3, 0x12, 0xc0,
183 	0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0xe7, 0x07,
184 	0x01, 0x00, 0xb8, 0x08, 0x97, 0xcf, 0xe7, 0x07,
185 	0x50, 0xc3, 0x12, 0xc0, 0xe7, 0x07, 0x30, 0x0e,
186 	0x02, 0x00, 0xe7, 0x07, 0x01, 0x00, 0x7a, 0x08,
187 	0xe7, 0x07, 0x05, 0x00, 0x90, 0xc0, 0x97, 0xcf,
188 	0xe7, 0x07, 0x00, 0x01, 0x42, 0xc0, 0xe7, 0x07,
189 	0x04, 0x00, 0x90, 0xc0, 0xe7, 0x07, 0x00, 0x00,
190 	0x7a, 0x08, 0xe7, 0x57, 0x0f, 0x00, 0xb2, 0x08,
191 	0x13, 0xc1, 0x9f, 0xaf, 0x2e, 0x08, 0xca, 0x09,
192 	0xac, 0x08, 0xf2, 0x17, 0x01, 0x00, 0x5c, 0x00,
193 	0xf2, 0x27, 0x00, 0x00, 0x5e, 0x00, 0xe7, 0x07,
194 	0x00, 0x00, 0xb2, 0x08, 0xe7, 0x07, 0x01, 0x00,
195 	0xb4, 0x08, 0xc0, 0x07, 0xff, 0xff, 0x97, 0xcf,
196 	0x9f, 0xaf, 0x4c, 0x03, 0xc0, 0x69, 0xb4, 0x08,
197 	0x57, 0x00, 0x9f, 0xde, 0x33, 0x00, 0xc1, 0x05,
198 	0x27, 0xd8, 0xb2, 0x08, 0x27, 0xd2, 0xb4, 0x08,
199 	0xe7, 0x87, 0x01, 0x00, 0xb4, 0x08, 0xe7, 0x67,
200 	0xff, 0x03, 0xb4, 0x08, 0x00, 0x60, 0x97, 0xc0,
201 	0xe7, 0x07, 0x01, 0x00, 0xb0, 0x08, 0x27, 0x00,
202 	0x12, 0xc0, 0x97, 0xcf, 0xc0, 0x09, 0xb6, 0x08,
203 	0x00, 0xd2, 0x02, 0xc3, 0xc0, 0x97, 0x05, 0x80,
204 	0x27, 0x00, 0xb6, 0x08, 0xc0, 0x99, 0x82, 0x08,
205 	0xc0, 0x99, 0xa2, 0xc0, 0x97, 0xcf, 0xe7, 0x07,
206 	0x00, 0x00, 0xb0, 0x08, 0xc0, 0xdf, 0x97, 0xcf,
207 	0xc8, 0x09, 0x72, 0x08, 0x08, 0x62, 0x02, 0xc0,
208 	0x10, 0x64, 0x07, 0xc1, 0xe7, 0x07, 0x00, 0x00,
209 	0x64, 0x08, 0xe7, 0x07, 0xc8, 0x05, 0x24, 0x00,
210 	0x97, 0xcf, 0x27, 0x04, 0x72, 0x08, 0xc8, 0x17,
211 	0x0e, 0x00, 0x27, 0x02, 0x64, 0x08, 0xe7, 0x07,
212 	0xd6, 0x05, 0x24, 0x00, 0x97, 0xcf, 0xd7, 0x09,
213 	0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00,
214 	0x62, 0x08, 0x13, 0xc1, 0x9f, 0xaf, 0x70, 0x03,
215 	0xe7, 0x57, 0x00, 0x00, 0x64, 0x08, 0x13, 0xc0,
216 	0xe7, 0x09, 0x64, 0x08, 0x30, 0x01, 0xe7, 0x07,
217 	0xf2, 0x05, 0x32, 0x01, 0xe7, 0x07, 0x10, 0x00,
218 	0x96, 0xc0, 0xe7, 0x09, 0x64, 0x08, 0x62, 0x08,
219 	0x04, 0xcf, 0xe7, 0x57, 0x00, 0x00, 0x64, 0x08,
220 	0x02, 0xc1, 0x9f, 0xaf, 0x70, 0x03, 0xe7, 0x05,
221 	0x00, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
222 	0xc1, 0xdf, 0xc8, 0x09, 0x72, 0x08, 0x27, 0x02,
223 	0x78, 0x08, 0x08, 0x62, 0x03, 0xc1, 0xe7, 0x05,
224 	0x00, 0xc0, 0x97, 0xcf, 0x27, 0x04, 0x72, 0x08,
225 	0xe7, 0x05, 0x00, 0xc0, 0xf0, 0x07, 0x40, 0x00,
226 	0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00,
227 	0x00, 0x02, 0xc0, 0x17, 0x0c, 0x00, 0x30, 0x00,
228 	0x06, 0x00, 0xf0, 0x07, 0x64, 0x01, 0x0a, 0x00,
229 	0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x02, 0x00,
230 	0x51, 0xaf, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
231 	0x6a, 0x08, 0x97, 0xc0, 0xc1, 0xdf, 0xc8, 0x09,
232 	0x6a, 0x08, 0x27, 0x04, 0x6a, 0x08, 0x27, 0x52,
233 	0x6c, 0x08, 0x03, 0xc1, 0xe7, 0x07, 0x6a, 0x08,
234 	0x6c, 0x08, 0xc0, 0xdf, 0x17, 0x02, 0xc8, 0x17,
235 	0x0e, 0x00, 0x9f, 0xaf, 0x16, 0x05, 0xc8, 0x05,
236 	0x00, 0x60, 0x03, 0xc0, 0x9f, 0xaf, 0x80, 0x04,
237 	0x97, 0xcf, 0x9f, 0xaf, 0x68, 0x04, 0x97, 0xcf,
238 	0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x08, 0x62,
239 	0x1c, 0xc0, 0xd0, 0x09, 0x72, 0x08, 0x27, 0x02,
240 	0x72, 0x08, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
241 	0x97, 0x02, 0xca, 0x09, 0xac, 0x08, 0xf2, 0x17,
242 	0x01, 0x00, 0x04, 0x00, 0xf2, 0x27, 0x00, 0x00,
243 	0x06, 0x00, 0xca, 0x17, 0x2c, 0x00, 0xf8, 0x77,
244 	0x01, 0x00, 0x0e, 0x00, 0x06, 0xc0, 0xca, 0xd9,
245 	0xf8, 0x57, 0xff, 0x00, 0x0e, 0x00, 0x01, 0xc1,
246 	0xca, 0xd9, 0x22, 0x1c, 0x0c, 0x00, 0xe2, 0x27,
247 	0x00, 0x00, 0xe2, 0x17, 0x01, 0x00, 0xe2, 0x27,
248 	0x00, 0x00, 0xca, 0x05, 0x00, 0x0c, 0x0c, 0x00,
249 	0xc0, 0x17, 0x41, 0x00, 0xc0, 0x67, 0xc0, 0xff,
250 	0x30, 0x00, 0x08, 0x00, 0x00, 0x02, 0xc0, 0x17,
251 	0x0c, 0x00, 0x30, 0x00, 0x06, 0x00, 0xf0, 0x07,
252 	0xdc, 0x00, 0x0a, 0x00, 0xf0, 0x07, 0x00, 0x00,
253 	0x04, 0x00, 0x00, 0x0c, 0x08, 0x00, 0x40, 0xd1,
254 	0x01, 0x00, 0xc0, 0x19, 0xa6, 0x08, 0xc0, 0x59,
255 	0x98, 0x08, 0x04, 0xc9, 0x49, 0xaf, 0x9f, 0xaf,
256 	0xee, 0x00, 0x4a, 0xaf, 0x67, 0x10, 0xa6, 0x08,
257 	0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x01, 0x00,
258 	0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x50, 0xaf,
259 	0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0xc0, 0x07,
260 	0x01, 0x00, 0xc1, 0x09, 0x7c, 0x08, 0xc1, 0x77,
261 	0x01, 0x00, 0x97, 0xc1, 0xd8, 0x77, 0x01, 0x00,
262 	0x12, 0xc0, 0xc9, 0x07, 0x4c, 0x08, 0x9f, 0xaf,
263 	0x64, 0x05, 0x04, 0xc1, 0xc1, 0x77, 0x08, 0x00,
264 	0x13, 0xc0, 0x97, 0xcf, 0xc1, 0x77, 0x02, 0x00,
265 	0x97, 0xc1, 0xc1, 0x77, 0x10, 0x00, 0x0c, 0xc0,
266 	0x9f, 0xaf, 0x86, 0x05, 0x97, 0xcf, 0xc1, 0x77,
267 	0x04, 0x00, 0x06, 0xc0, 0xc9, 0x07, 0x7e, 0x08,
268 	0x9f, 0xaf, 0x64, 0x05, 0x97, 0xc0, 0x00, 0xcf,
269 	0x00, 0x90, 0x97, 0xcf, 0x50, 0x54, 0x97, 0xc1,
270 	0x70, 0x5c, 0x02, 0x00, 0x02, 0x00, 0x97, 0xc1,
271 	0x70, 0x5c, 0x04, 0x00, 0x04, 0x00, 0x97, 0xcf,
272 	0xc0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00,
273 	0x0c, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcb, 0x09,
274 	0x88, 0x08, 0xcc, 0x09, 0x8a, 0x08, 0x0b, 0x53,
275 	0x11, 0xc0, 0xc9, 0x02, 0xca, 0x07, 0x78, 0x05,
276 	0x9f, 0xaf, 0x64, 0x05, 0x97, 0xc0, 0x0a, 0xc8,
277 	0x82, 0x08, 0x0a, 0xcf, 0x82, 0x08, 0x9f, 0xaf,
278 	0x64, 0x05, 0x97, 0xc0, 0x05, 0xc2, 0x89, 0x30,
279 	0x82, 0x60, 0x78, 0xc1, 0x00, 0x90, 0x97, 0xcf,
280 	0x89, 0x10, 0x09, 0x53, 0x79, 0xc2, 0x89, 0x30,
281 	0x82, 0x08, 0x7a, 0xcf, 0xc0, 0xdf, 0x97, 0xcf,
282 	0xe7, 0x09, 0x96, 0xc0, 0x66, 0x08, 0xe7, 0x09,
283 	0x98, 0xc0, 0x68, 0x08, 0x0f, 0xcf, 0xe7, 0x09,
284 	0x96, 0xc0, 0x66, 0x08, 0xe7, 0x09, 0x98, 0xc0,
285 	0x68, 0x08, 0xe7, 0x09, 0x64, 0x08, 0x30, 0x01,
286 	0xe7, 0x07, 0xf2, 0x05, 0x32, 0x01, 0xe7, 0x07,
287 	0x10, 0x00, 0x96, 0xc0, 0xd7, 0x09, 0x00, 0xc0,
288 	0x17, 0x02, 0xc8, 0x09, 0x62, 0x08, 0xc8, 0x37,
289 	0x0e, 0x00, 0xe7, 0x57, 0x04, 0x00, 0x68, 0x08,
290 	0x3d, 0xc0, 0xe7, 0x87, 0x00, 0x08, 0x24, 0xc0,
291 	0xe7, 0x09, 0x94, 0x08, 0xba, 0x08, 0xe7, 0x17,
292 	0x64, 0x00, 0xba, 0x08, 0xe7, 0x67, 0xff, 0x07,
293 	0xba, 0x08, 0xe7, 0x77, 0x2a, 0x00, 0x66, 0x08,
294 	0x30, 0xc0, 0x97, 0x02, 0xca, 0x09, 0xac, 0x08,
295 	0xe7, 0x77, 0x20, 0x00, 0x66, 0x08, 0x0e, 0xc0,
296 	0xf2, 0x17, 0x01, 0x00, 0x10, 0x00, 0xf2, 0x27,
297 	0x00, 0x00, 0x12, 0x00, 0xe7, 0x77, 0x0a, 0x00,
298 	0x66, 0x08, 0xca, 0x05, 0x1e, 0xc0, 0x97, 0x02,
299 	0xca, 0x09, 0xac, 0x08, 0xf2, 0x17, 0x01, 0x00,
300 	0x0c, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x0e, 0x00,
301 	0xe7, 0x77, 0x02, 0x00, 0x66, 0x08, 0x07, 0xc0,
302 	0xf2, 0x17, 0x01, 0x00, 0x44, 0x00, 0xf2, 0x27,
303 	0x00, 0x00, 0x46, 0x00, 0x06, 0xcf, 0xf2, 0x17,
304 	0x01, 0x00, 0x60, 0x00, 0xf2, 0x27, 0x00, 0x00,
305 	0x62, 0x00, 0xca, 0x05, 0x9f, 0xaf, 0x68, 0x04,
306 	0x0f, 0xcf, 0x57, 0x02, 0x09, 0x02, 0xf1, 0x09,
307 	0x68, 0x08, 0x0c, 0x00, 0xf1, 0xda, 0x0c, 0x00,
308 	0xc8, 0x09, 0x6c, 0x08, 0x50, 0x02, 0x67, 0x02,
309 	0x6c, 0x08, 0xd1, 0x07, 0x00, 0x00, 0xc9, 0x05,
310 	0xe7, 0x09, 0x64, 0x08, 0x62, 0x08, 0xe7, 0x57,
311 	0x00, 0x00, 0x62, 0x08, 0x02, 0xc0, 0x9f, 0xaf,
312 	0x70, 0x03, 0xc8, 0x05, 0xe7, 0x05, 0x00, 0xc0,
313 	0xc0, 0xdf, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
314 	0x17, 0x00, 0x17, 0x02, 0x97, 0x02, 0xc0, 0x09,
315 	0x92, 0xc0, 0xe7, 0x87, 0x00, 0x08, 0x24, 0xc0,
316 	0xe7, 0x09, 0x94, 0x08, 0xba, 0x08, 0xe7, 0x17,
317 	0x64, 0x00, 0xba, 0x08, 0xe7, 0x67, 0xff, 0x07,
318 	0xba, 0x08, 0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0,
319 	0xca, 0x09, 0xac, 0x08, 0xe7, 0x07, 0x00, 0x00,
320 	0x7a, 0x08, 0xe7, 0x07, 0x66, 0x03, 0x02, 0x00,
321 	0xc0, 0x77, 0x02, 0x00, 0x10, 0xc0, 0xef, 0x57,
322 	0x00, 0x00, 0xf0, 0x09, 0x04, 0xc0, 0x9f, 0xaf,
323 	0xd8, 0x02, 0x9f, 0xcf, 0x12, 0x08, 0xf2, 0x17,
324 	0x01, 0x00, 0x50, 0x00, 0xf2, 0x27, 0x00, 0x00,
325 	0x52, 0x00, 0x9f, 0xcf, 0x12, 0x08, 0xef, 0x57,
326 	0x00, 0x00, 0xf0, 0x09, 0x08, 0xc0, 0xe7, 0x57,
327 	0x00, 0x00, 0xb8, 0x08, 0xe7, 0x07, 0x00, 0x00,
328 	0xb8, 0x08, 0x0a, 0xc0, 0x03, 0xcf, 0xc0, 0x77,
329 	0x10, 0x00, 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00,
330 	0x58, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x5a, 0x00,
331 	0xc0, 0x77, 0x80, 0x00, 0x06, 0xc0, 0xf2, 0x17,
332 	0x01, 0x00, 0x70, 0x00, 0xf2, 0x27, 0x00, 0x00,
333 	0x72, 0x00, 0xc0, 0x77, 0x08, 0x00, 0x1d, 0xc1,
334 	0xf2, 0x17, 0x01, 0x00, 0x08, 0x00, 0xf2, 0x27,
335 	0x00, 0x00, 0x0a, 0x00, 0xc0, 0x77, 0x00, 0x02,
336 	0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00, 0x64, 0x00,
337 	0xf2, 0x27, 0x00, 0x00, 0x66, 0x00, 0xc0, 0x77,
338 	0x40, 0x00, 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00,
339 	0x5c, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x5e, 0x00,
340 	0xc0, 0x77, 0x01, 0x00, 0x01, 0xc0, 0x37, 0xcf,
341 	0x36, 0xcf, 0xf2, 0x17, 0x01, 0x00, 0x00, 0x00,
342 	0xf2, 0x27, 0x00, 0x00, 0x02, 0x00, 0xef, 0x57,
343 	0x00, 0x00, 0xf0, 0x09, 0x18, 0xc0, 0xe7, 0x57,
344 	0x01, 0x00, 0xb2, 0x08, 0x0e, 0xc2, 0x07, 0xc8,
345 	0xf2, 0x17, 0x01, 0x00, 0x50, 0x00, 0xf2, 0x27,
346 	0x00, 0x00, 0x52, 0x00, 0x06, 0xcf, 0xf2, 0x17,
347 	0x01, 0x00, 0x54, 0x00, 0xf2, 0x27, 0x00, 0x00,
348 	0x56, 0x00, 0xe7, 0x07, 0x00, 0x00, 0xb2, 0x08,
349 	0xe7, 0x07, 0x01, 0x00, 0xb4, 0x08, 0xc8, 0x09,
350 	0x34, 0x01, 0xca, 0x17, 0x14, 0x00, 0xd8, 0x77,
351 	0x01, 0x00, 0x05, 0xc0, 0xca, 0xd9, 0xd8, 0x57,
352 	0xff, 0x00, 0x01, 0xc0, 0xca, 0xd9, 0xe2, 0x19,
353 	0x94, 0xc0, 0xe2, 0x27, 0x00, 0x00, 0xe2, 0x17,
354 	0x01, 0x00, 0xe2, 0x27, 0x00, 0x00, 0x9f, 0xaf,
355 	0x2e, 0x08, 0x9f, 0xaf, 0xde, 0x01, 0xe7, 0x57,
356 	0x00, 0x00, 0xaa, 0x08, 0x9f, 0xa1, 0xf0, 0x0b,
357 	0xca, 0x05, 0xc8, 0x05, 0xc0, 0x05, 0xe7, 0x05,
358 	0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf, 0xc8, 0x09,
359 	0x6e, 0x08, 0x08, 0x62, 0x97, 0xc0, 0x27, 0x04,
360 	0x6e, 0x08, 0x27, 0x52, 0x70, 0x08, 0x03, 0xc1,
361 	0xe7, 0x07, 0x6e, 0x08, 0x70, 0x08, 0x9f, 0xaf,
362 	0x68, 0x04, 0x97, 0xcf, 0xff, 0xff, 0xff, 0xff,
363 	0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
364 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
366 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
367 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
368 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
369 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
370 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
371 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
372 	0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
373 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
374 	0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
375 	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x33, 0xcc,
376 	0x00, 0x00, 0x00, 0x00, 0xe7, 0x57, 0x00, 0x80,
377 	0xb2, 0x00, 0x06, 0xc2, 0xe7, 0x07, 0x52, 0x0e,
378 	0x12, 0x00, 0xe7, 0x07, 0x98, 0x0e, 0xb2, 0x00,
379 	0xe7, 0x07, 0xa4, 0x09, 0xf2, 0x02, 0xc8, 0x09,
380 	0xb4, 0x00, 0xf8, 0x07, 0x02, 0x00, 0x0d, 0x00,
381 	0xd7, 0x09, 0x0e, 0xc0, 0xe7, 0x07, 0x00, 0x00,
382 	0x0e, 0xc0, 0xc8, 0x09, 0xdc, 0x00, 0xf0, 0x07,
383 	0xff, 0xff, 0x09, 0x00, 0xf0, 0x07, 0xfb, 0x13,
384 	0x0b, 0x00, 0xe7, 0x09, 0xc0, 0x00, 0x58, 0x08,
385 	0xe7, 0x09, 0xbe, 0x00, 0x54, 0x08, 0xe7, 0x09,
386 	0x10, 0x00, 0x92, 0x08, 0xc8, 0x07, 0xb4, 0x09,
387 	0x9f, 0xaf, 0x8c, 0x09, 0x9f, 0xaf, 0xe2, 0x0b,
388 	0xc0, 0x07, 0x80, 0x01, 0x44, 0xaf, 0x27, 0x00,
389 	0x88, 0x08, 0x27, 0x00, 0x8a, 0x08, 0x27, 0x00,
390 	0x8c, 0x08, 0xc0, 0x07, 0x74, 0x00, 0x44, 0xaf,
391 	0x27, 0x00, 0xac, 0x08, 0x08, 0x00, 0x00, 0x90,
392 	0xc1, 0x07, 0x1d, 0x00, 0x20, 0x00, 0x20, 0x00,
393 	0x01, 0xda, 0x7c, 0xc1, 0x9f, 0xaf, 0x8a, 0x0b,
394 	0xc0, 0x07, 0x4c, 0x00, 0x48, 0xaf, 0x27, 0x00,
395 	0x56, 0x08, 0x9f, 0xaf, 0x72, 0x0c, 0xe7, 0x07,
396 	0x00, 0x80, 0x96, 0x08, 0xef, 0x57, 0x00, 0x00,
397 	0xf0, 0x09, 0x03, 0xc0, 0xe7, 0x07, 0x01, 0x00,
398 	0x1c, 0xc0, 0xe7, 0x05, 0x0e, 0xc0, 0x97, 0xcf,
399 	0x49, 0xaf, 0xe7, 0x87, 0x43, 0x00, 0x0e, 0xc0,
400 	0xe7, 0x07, 0xff, 0xff, 0x94, 0x08, 0x9f, 0xaf,
401 	0x8a, 0x0c, 0xc0, 0x07, 0x01, 0x00, 0x60, 0xaf,
402 	0x4a, 0xaf, 0x97, 0xcf, 0x00, 0x08, 0x09, 0x08,
403 	0x11, 0x08, 0x00, 0xda, 0x7c, 0xc1, 0x97, 0xcf,
404 	0x67, 0x04, 0xcc, 0x02, 0xc0, 0xdf, 0x51, 0x94,
405 	0xb1, 0xaf, 0x06, 0x00, 0xc1, 0xdf, 0xc9, 0x09,
406 	0xcc, 0x02, 0x49, 0x62, 0x75, 0xc1, 0xc0, 0xdf,
407 	0xa7, 0xcf, 0xd6, 0x02, 0x0e, 0x00, 0x24, 0x00,
408 	0xd6, 0x05, 0x22, 0x00, 0xc4, 0x06, 0xd0, 0x00,
409 	0xf0, 0x0b, 0xaa, 0x00, 0x0e, 0x0a, 0xbe, 0x00,
410 	0x2c, 0x0c, 0x10, 0x00, 0x20, 0x00, 0x04, 0x00,
411 	0xc4, 0x05, 0x02, 0x00, 0x66, 0x03, 0x06, 0x00,
412 	0x00, 0x00, 0x24, 0xc0, 0x04, 0x04, 0x28, 0xc0,
413 	0xfe, 0xfb, 0x1e, 0xc0, 0x00, 0x04, 0x22, 0xc0,
414 	0xff, 0xf0, 0xc0, 0x00, 0x60, 0x0b, 0x00, 0x00,
415 	0x00, 0x00, 0xff, 0xff, 0x34, 0x0a, 0x3e, 0x0a,
416 	0x9e, 0x0a, 0xa8, 0x0a, 0xce, 0x0a, 0xd2, 0x0a,
417 	0xd6, 0x0a, 0x00, 0x0b, 0x10, 0x0b, 0x1e, 0x0b,
418 	0x20, 0x0b, 0x28, 0x0b, 0x28, 0x0b, 0x27, 0x02,
419 	0xa2, 0x08, 0x97, 0xcf, 0xe7, 0x07, 0x00, 0x00,
420 	0xa2, 0x08, 0x0a, 0x0e, 0x01, 0x00, 0xca, 0x57,
421 	0x0e, 0x00, 0x9f, 0xc3, 0x2a, 0x0b, 0xca, 0x37,
422 	0x00, 0x00, 0x9f, 0xc2, 0x2a, 0x0b, 0x0a, 0xd2,
423 	0xb2, 0xcf, 0xf4, 0x09, 0xc8, 0x09, 0xde, 0x00,
424 	0x07, 0x06, 0x9f, 0xcf, 0x3c, 0x0b, 0xf0, 0x57,
425 	0x80, 0x01, 0x06, 0x00, 0x9f, 0xc8, 0x2a, 0x0b,
426 	0x27, 0x0c, 0x02, 0x00, 0x86, 0x08, 0xc0, 0x09,
427 	0x88, 0x08, 0x27, 0x00, 0x8a, 0x08, 0xe7, 0x07,
428 	0x00, 0x00, 0x84, 0x08, 0x27, 0x00, 0x5c, 0x08,
429 	0x00, 0x1c, 0x06, 0x00, 0x27, 0x00, 0x8c, 0x08,
430 	0x41, 0x90, 0x67, 0x50, 0x86, 0x08, 0x0d, 0xc0,
431 	0x67, 0x00, 0x5a, 0x08, 0x27, 0x0c, 0x06, 0x00,
432 	0x5e, 0x08, 0xe7, 0x07, 0x8a, 0x0a, 0x60, 0x08,
433 	0xc8, 0x07, 0x5a, 0x08, 0x41, 0x90, 0x51, 0xaf,
434 	0x97, 0xcf, 0x9f, 0xaf, 0xac, 0x0e, 0xe7, 0x09,
435 	0x8c, 0x08, 0x8a, 0x08, 0xe7, 0x09, 0x86, 0x08,
436 	0x84, 0x08, 0x59, 0xaf, 0x97, 0xcf, 0x27, 0x0c,
437 	0x02, 0x00, 0x7c, 0x08, 0x59, 0xaf, 0x97, 0xcf,
438 	0x09, 0x0c, 0x02, 0x00, 0x09, 0xda, 0x49, 0xd2,
439 	0xc9, 0x19, 0xac, 0x08, 0xc8, 0x07, 0x5a, 0x08,
440 	0xe0, 0x07, 0x00, 0x00, 0x60, 0x02, 0xe0, 0x07,
441 	0x04, 0x00, 0xd0, 0x07, 0x9a, 0x0a, 0x48, 0xdb,
442 	0x41, 0x90, 0x50, 0xaf, 0x97, 0xcf, 0x59, 0xaf,
443 	0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf, 0xf0, 0x57,
444 	0x06, 0x00, 0x06, 0x00, 0x26, 0xc1, 0xe7, 0x07,
445 	0x7e, 0x08, 0x5c, 0x08, 0x41, 0x90, 0x67, 0x00,
446 	0x5a, 0x08, 0x27, 0x0c, 0x06, 0x00, 0x5e, 0x08,
447 	0xe7, 0x07, 0x5c, 0x0b, 0x60, 0x08, 0xc8, 0x07,
448 	0x5a, 0x08, 0x41, 0x90, 0x51, 0xaf, 0x97, 0xcf,
449 	0x07, 0x0c, 0x06, 0x00, 0xc7, 0x57, 0x06, 0x00,
450 	0x10, 0xc1, 0xc8, 0x07, 0x7e, 0x08, 0x16, 0xcf,
451 	0x00, 0x0c, 0x02, 0x00, 0x00, 0xda, 0x40, 0xd1,
452 	0x27, 0x00, 0x98, 0x08, 0x1f, 0xcf, 0x1e, 0xcf,
453 	0x27, 0x0c, 0x02, 0x00, 0xa4, 0x08, 0x1a, 0xcf,
454 	0x00, 0xcf, 0x27, 0x02, 0x20, 0x01, 0xe7, 0x07,
455 	0x08, 0x00, 0x22, 0x01, 0xe7, 0x07, 0x13, 0x00,
456 	0xb0, 0xc0, 0x97, 0xcf, 0x41, 0x90, 0x67, 0x00,
457 	0x5a, 0x08, 0xe7, 0x01, 0x5e, 0x08, 0x27, 0x02,
458 	0x5c, 0x08, 0xe7, 0x07, 0x5c, 0x0b, 0x60, 0x08,
459 	0xc8, 0x07, 0x5a, 0x08, 0xc1, 0x07, 0x00, 0x80,
460 	0x50, 0xaf, 0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf,
461 	0x00, 0x60, 0x05, 0xc0, 0xe7, 0x07, 0x00, 0x00,
462 	0x9a, 0x08, 0xa7, 0xcf, 0x58, 0x08, 0x9f, 0xaf,
463 	0xe2, 0x0b, 0xe7, 0x07, 0x01, 0x00, 0x9a, 0x08,
464 	0x49, 0xaf, 0xd7, 0x09, 0x00, 0xc0, 0x07, 0xaf,
465 	0xe7, 0x05, 0x00, 0xc0, 0x4a, 0xaf, 0xa7, 0xcf,
466 	0x58, 0x08, 0xc0, 0x07, 0x40, 0x00, 0x44, 0xaf,
467 	0x27, 0x00, 0xa0, 0x08, 0x08, 0x00, 0xc0, 0x07,
468 	0x20, 0x00, 0x20, 0x94, 0x00, 0xda, 0x7d, 0xc1,
469 	0xc0, 0x07, 0xfe, 0x7f, 0x44, 0xaf, 0x40, 0x00,
470 	0x41, 0x90, 0xc0, 0x37, 0x08, 0x00, 0xdf, 0xde,
471 	0x50, 0x06, 0xc0, 0x57, 0x10, 0x00, 0x02, 0xc2,
472 	0xc0, 0x07, 0x10, 0x00, 0x27, 0x00, 0x76, 0x08,
473 	0x41, 0x90, 0x9f, 0xde, 0x40, 0x06, 0x44, 0xaf,
474 	0x27, 0x00, 0x74, 0x08, 0xc0, 0x09, 0x76, 0x08,
475 	0x41, 0x90, 0x00, 0xd2, 0x00, 0xd8, 0x9f, 0xde,
476 	0x08, 0x00, 0x44, 0xaf, 0x27, 0x00, 0x9e, 0x08,
477 	0x97, 0xcf, 0xe7, 0x87, 0x00, 0x84, 0x28, 0xc0,
478 	0xe7, 0x67, 0xff, 0xf3, 0x24, 0xc0, 0x97, 0xcf,
479 	0xe7, 0x87, 0x01, 0x00, 0xaa, 0x08, 0xe7, 0x57,
480 	0x00, 0x00, 0x7a, 0x08, 0x97, 0xc1, 0x9f, 0xaf,
481 	0xe2, 0x0b, 0xe7, 0x87, 0x00, 0x06, 0x22, 0xc0,
482 	0xe7, 0x07, 0x00, 0x00, 0x90, 0xc0, 0xe7, 0x67,
483 	0xfe, 0xff, 0x3e, 0xc0, 0xe7, 0x07, 0x2e, 0x00,
484 	0x0a, 0xc0, 0xe7, 0x87, 0x01, 0x00, 0x3e, 0xc0,
485 	0xe7, 0x07, 0xff, 0xff, 0x94, 0x08, 0x9f, 0xaf,
486 	0xf0, 0x0c, 0x97, 0xcf, 0x17, 0x00, 0xa7, 0xaf,
487 	0x54, 0x08, 0xc0, 0x05, 0x27, 0x00, 0x52, 0x08,
488 	0xe7, 0x87, 0x01, 0x00, 0xaa, 0x08, 0x9f, 0xaf,
489 	0xe2, 0x0b, 0xe7, 0x07, 0x0c, 0x00, 0x40, 0xc0,
490 	0x9f, 0xaf, 0xf0, 0x0c, 0xe7, 0x07, 0x00, 0x00,
491 	0x78, 0x08, 0x00, 0x90, 0xe7, 0x09, 0x88, 0x08,
492 	0x8a, 0x08, 0x27, 0x00, 0x84, 0x08, 0x27, 0x00,
493 	0x7c, 0x08, 0x9f, 0xaf, 0x8a, 0x0c, 0xe7, 0x07,
494 	0x00, 0x00, 0xb2, 0x02, 0xe7, 0x07, 0x00, 0x00,
495 	0xb4, 0x02, 0xc0, 0x07, 0x06, 0x00, 0xc8, 0x09,
496 	0xde, 0x00, 0xc8, 0x17, 0x03, 0x00, 0xc9, 0x07,
497 	0x7e, 0x08, 0x29, 0x0a, 0x00, 0xda, 0x7d, 0xc1,
498 	0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf,
499 	0x00, 0x90, 0x27, 0x00, 0x6a, 0x08, 0xe7, 0x07,
500 	0x6a, 0x08, 0x6c, 0x08, 0x27, 0x00, 0x6e, 0x08,
501 	0xe7, 0x07, 0x6e, 0x08, 0x70, 0x08, 0x27, 0x00,
502 	0x78, 0x08, 0x27, 0x00, 0x62, 0x08, 0x27, 0x00,
503 	0x64, 0x08, 0xc8, 0x09, 0x74, 0x08, 0xc1, 0x09,
504 	0x76, 0x08, 0xc9, 0x07, 0x72, 0x08, 0x11, 0x02,
505 	0x09, 0x02, 0xc8, 0x17, 0x40, 0x06, 0x01, 0xda,
506 	0x7a, 0xc1, 0x51, 0x94, 0xc8, 0x09, 0x9e, 0x08,
507 	0xc9, 0x07, 0x9c, 0x08, 0xc1, 0x09, 0x76, 0x08,
508 	0x01, 0xd2, 0x01, 0xd8, 0x11, 0x02, 0x09, 0x02,
509 	0xc8, 0x17, 0x08, 0x00, 0x01, 0xda, 0x7a, 0xc1,
510 	0x51, 0x94, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
511 	0xe7, 0x57, 0x00, 0x00, 0x52, 0x08, 0x97, 0xc0,
512 	0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x09, 0x94, 0x08,
513 	0x90, 0x08, 0xe7, 0x57, 0xff, 0xff, 0x90, 0x08,
514 	0x04, 0xc1, 0xe7, 0x07, 0xf0, 0x0c, 0x8e, 0x08,
515 	0x97, 0xcf, 0xe7, 0x17, 0x32, 0x00, 0x90, 0x08,
516 	0xe7, 0x67, 0xff, 0x07, 0x90, 0x08, 0xe7, 0x07,
517 	0x26, 0x0d, 0x8e, 0x08, 0x97, 0xcf, 0xd7, 0x09,
518 	0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00,
519 	0x96, 0x08, 0x23, 0xc0, 0xe7, 0x07, 0x00, 0x80,
520 	0x80, 0xc0, 0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0,
521 	0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0, 0xe7, 0x07,
522 	0x00, 0x80, 0x80, 0xc0, 0xc0, 0x07, 0x00, 0x00,
523 	0xc0, 0x07, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00,
524 	0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0, 0xe7, 0x07,
525 	0x00, 0x80, 0x80, 0xc0, 0xe7, 0x07, 0x00, 0x80,
526 	0x40, 0xc0, 0xc0, 0x07, 0x00, 0x00, 0xe7, 0x07,
527 	0x00, 0x00, 0x40, 0xc0, 0xe7, 0x07, 0x00, 0x00,
528 	0x80, 0xc0, 0xef, 0x57, 0x00, 0x00, 0xf1, 0x09,
529 	0x9f, 0xa0, 0xc0, 0x0d, 0xe7, 0x07, 0x04, 0x00,
530 	0x90, 0xc0, 0xe7, 0x07, 0x00, 0x02, 0x40, 0xc0,
531 	0xe7, 0x07, 0x0c, 0x02, 0x40, 0xc0, 0xe7, 0x07,
532 	0x00, 0x00, 0x96, 0x08, 0xe7, 0x07, 0x00, 0x00,
533 	0x8e, 0x08, 0xe7, 0x07, 0x00, 0x00, 0xaa, 0x08,
534 	0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x9f, 0xaf,
535 	0x9e, 0x03, 0xe7, 0x05, 0x00, 0xc0, 0x9f, 0xaf,
536 	0xde, 0x01, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
537 	0x9f, 0xaf, 0xde, 0x0d, 0xef, 0x77, 0x00, 0x00,
538 	0xf1, 0x09, 0x97, 0xc1, 0x9f, 0xaf, 0xde, 0x0d,
539 	0xef, 0x77, 0x00, 0x00, 0xf1, 0x09, 0x97, 0xc1,
540 	0xef, 0x07, 0x01, 0x00, 0xf1, 0x09, 0xe7, 0x87,
541 	0x00, 0x08, 0x1e, 0xc0, 0xe7, 0x87, 0x00, 0x08,
542 	0x22, 0xc0, 0xe7, 0x67, 0xff, 0xf7, 0x22, 0xc0,
543 	0xe7, 0x77, 0x00, 0x08, 0x20, 0xc0, 0x11, 0xc0,
544 	0xe7, 0x67, 0xff, 0xf7, 0x1e, 0xc0, 0xe7, 0x87,
545 	0x00, 0x08, 0x22, 0xc0, 0xe7, 0x67, 0xff, 0xf7,
546 	0x22, 0xc0, 0xe7, 0x77, 0x00, 0x08, 0x20, 0xc0,
547 	0x04, 0xc1, 0xe7, 0x87, 0x00, 0x08, 0x22, 0xc0,
548 	0x97, 0xcf, 0xe7, 0x07, 0x01, 0x01, 0xf0, 0x09,
549 	0xef, 0x57, 0x18, 0x00, 0xfe, 0xff, 0x97, 0xc2,
550 	0xef, 0x07, 0x00, 0x00, 0xf0, 0x09, 0x97, 0xcf,
551 	0xd7, 0x09, 0x00, 0xc0, 0x17, 0x00, 0x17, 0x02,
552 	0x97, 0x02, 0xe7, 0x57, 0x00, 0x00, 0x7a, 0x08,
553 	0x06, 0xc0, 0xc0, 0x09, 0x92, 0xc0, 0xc0, 0x77,
554 	0x09, 0x02, 0x9f, 0xc1, 0xea, 0x06, 0x9f, 0xcf,
555 	0x20, 0x08, 0xd7, 0x09, 0x0e, 0xc0, 0xe7, 0x07,
556 	0x00, 0x00, 0x0e, 0xc0, 0x9f, 0xaf, 0x66, 0x0e,
557 	0xe7, 0x05, 0x0e, 0xc0, 0x97, 0xcf, 0xd7, 0x09,
558 	0x00, 0xc0, 0x17, 0x02, 0xc8, 0x09, 0xb0, 0xc0,
559 	0xe7, 0x67, 0xfe, 0x7f, 0xb0, 0xc0, 0xc8, 0x77,
560 	0x00, 0x20, 0x9f, 0xc1, 0x64, 0xeb, 0xe7, 0x57,
561 	0x00, 0x00, 0xc8, 0x02, 0x9f, 0xc1, 0x80, 0xeb,
562 	0xc8, 0x99, 0xca, 0x02, 0xc8, 0x67, 0x04, 0x00,
563 	0x9f, 0xc1, 0x96, 0xeb, 0x9f, 0xcf, 0x4c, 0xeb,
564 	0xe7, 0x07, 0x00, 0x00, 0xa6, 0xc0, 0xe7, 0x09,
565 	0xb0, 0xc0, 0xc8, 0x02, 0xe7, 0x07, 0x03, 0x00,
566 	0xb0, 0xc0, 0x97, 0xcf, 0xc0, 0x09, 0x86, 0x08,
567 	0xc0, 0x37, 0x01, 0x00, 0x97, 0xc9, 0xc9, 0x09,
568 	0x88, 0x08, 0x02, 0x00, 0x41, 0x90, 0x48, 0x02,
569 	0xc9, 0x17, 0x06, 0x00, 0x9f, 0xaf, 0x64, 0x05,
570 	0x9f, 0xa2, 0xd6, 0x0e, 0x02, 0xda, 0x77, 0xc1,
571 	0x41, 0x60, 0x71, 0xc1, 0x97, 0xcf, 0x17, 0x02,
572 	0x57, 0x02, 0x43, 0x04, 0x21, 0x04, 0xe0, 0x00,
573 	0x43, 0x04, 0x21, 0x04, 0xe0, 0x00, 0x43, 0x04,
574 	0x21, 0x04, 0xe0, 0x00, 0xc1, 0x07, 0x01, 0x00,
575 	0xc9, 0x05, 0xc8, 0x05, 0x97, 0xcf,
576 	0, 0
577 };
578 
579 /* Firmware fixup (data?) segment */
580 static unsigned char kue_fix_seg[] =
581 {
582 	/******************************************/
583 	/* NOTE: B6/C3 is data header signature   */
584 	/* 0xAA/0xBB is data length = total */
585 	/* bytes - 7, 0xCC is type, 0xDD is */
586 	/* interrupt to use.                */
587 	/******************************************/
588 	0xB6, 0xC3, 0xc9, 0x02, 0x03, 0x64,
589 	0x02, 0x00, 0x08, 0x00, 0x24, 0x00, 0x2e, 0x00,
590 	0x2c, 0x00, 0x3e, 0x00, 0x44, 0x00, 0x48, 0x00,
591 	0x50, 0x00, 0x5c, 0x00, 0x60, 0x00, 0x66, 0x00,
592 	0x6c, 0x00, 0x70, 0x00, 0x76, 0x00, 0x74, 0x00,
593 	0x7a, 0x00, 0x7e, 0x00, 0x84, 0x00, 0x8a, 0x00,
594 	0x8e, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9c, 0x00,
595 	0xa0, 0x00, 0xa8, 0x00, 0xae, 0x00, 0xb4, 0x00,
596 	0xb2, 0x00, 0xba, 0x00, 0xbe, 0x00, 0xc4, 0x00,
597 	0xc8, 0x00, 0xce, 0x00, 0xd2, 0x00, 0xd6, 0x00,
598 	0xda, 0x00, 0xe2, 0x00, 0xe0, 0x00, 0xea, 0x00,
599 	0xf2, 0x00, 0xfe, 0x00, 0x06, 0x01, 0x0c, 0x01,
600 	0x1a, 0x01, 0x24, 0x01, 0x22, 0x01, 0x2a, 0x01,
601 	0x30, 0x01, 0x36, 0x01, 0x3c, 0x01, 0x4e, 0x01,
602 	0x52, 0x01, 0x58, 0x01, 0x5c, 0x01, 0x9c, 0x01,
603 	0xb6, 0x01, 0xba, 0x01, 0xc0, 0x01, 0xca, 0x01,
604 	0xd0, 0x01, 0xda, 0x01, 0xe2, 0x01, 0xea, 0x01,
605 	0xf0, 0x01, 0x0a, 0x02, 0x0e, 0x02, 0x14, 0x02,
606 	0x26, 0x02, 0x6c, 0x02, 0x8e, 0x02, 0x98, 0x02,
607 	0xa0, 0x02, 0xa6, 0x02, 0xba, 0x02, 0xc6, 0x02,
608 	0xce, 0x02, 0xe8, 0x02, 0xee, 0x02, 0xf4, 0x02,
609 	0xf8, 0x02, 0x0a, 0x03, 0x10, 0x03, 0x1a, 0x03,
610 	0x1e, 0x03, 0x2a, 0x03, 0x2e, 0x03, 0x34, 0x03,
611 	0x3a, 0x03, 0x44, 0x03, 0x4e, 0x03, 0x5a, 0x03,
612 	0x5e, 0x03, 0x6a, 0x03, 0x72, 0x03, 0x80, 0x03,
613 	0x84, 0x03, 0x8c, 0x03, 0x94, 0x03, 0x98, 0x03,
614 	0xa8, 0x03, 0xae, 0x03, 0xb4, 0x03, 0xba, 0x03,
615 	0xce, 0x03, 0xcc, 0x03, 0xd6, 0x03, 0xdc, 0x03,
616 	0xec, 0x03, 0xf0, 0x03, 0xfe, 0x03, 0x1c, 0x04,
617 	0x30, 0x04, 0x38, 0x04, 0x3c, 0x04, 0x40, 0x04,
618 	0x48, 0x04, 0x46, 0x04, 0x54, 0x04, 0x5e, 0x04,
619 	0x64, 0x04, 0x74, 0x04, 0x78, 0x04, 0x84, 0x04,
620 	0xd8, 0x04, 0xec, 0x04, 0xf0, 0x04, 0xf8, 0x04,
621 	0xfe, 0x04, 0x1c, 0x05, 0x2c, 0x05, 0x30, 0x05,
622 	0x4a, 0x05, 0x56, 0x05, 0x5a, 0x05, 0x88, 0x05,
623 	0x8c, 0x05, 0x96, 0x05, 0x9a, 0x05, 0xa8, 0x05,
624 	0xcc, 0x05, 0xd2, 0x05, 0xda, 0x05, 0xe0, 0x05,
625 	0xe4, 0x05, 0xfc, 0x05, 0x06, 0x06, 0x14, 0x06,
626 	0x12, 0x06, 0x1a, 0x06, 0x20, 0x06, 0x26, 0x06,
627 	0x2e, 0x06, 0x34, 0x06, 0x48, 0x06, 0x52, 0x06,
628 	0x64, 0x06, 0x86, 0x06, 0x90, 0x06, 0x9a, 0x06,
629 	0xa0, 0x06, 0xac, 0x06, 0xaa, 0x06, 0xb2, 0x06,
630 	0xb8, 0x06, 0xdc, 0x06, 0xda, 0x06, 0xe2, 0x06,
631 	0xe8, 0x06, 0xf2, 0x06, 0xf8, 0x06, 0xfc, 0x06,
632 	0x0a, 0x07, 0x10, 0x07, 0x14, 0x07, 0x24, 0x07,
633 	0x2a, 0x07, 0x32, 0x07, 0x38, 0x07, 0xb2, 0x07,
634 	0xba, 0x07, 0xde, 0x07, 0xe4, 0x07, 0x10, 0x08,
635 	0x14, 0x08, 0x1a, 0x08, 0x1e, 0x08, 0x30, 0x08,
636 	0x38, 0x08, 0x3c, 0x08, 0x44, 0x08, 0x42, 0x08,
637 	0x48, 0x08, 0xc6, 0x08, 0xcc, 0x08, 0xd2, 0x08,
638 	0xfe, 0x08, 0x04, 0x09, 0x0a, 0x09, 0x0e, 0x09,
639 	0x12, 0x09, 0x16, 0x09, 0x20, 0x09, 0x24, 0x09,
640 	0x28, 0x09, 0x32, 0x09, 0x46, 0x09, 0x4a, 0x09,
641 	0x50, 0x09, 0x54, 0x09, 0x5a, 0x09, 0x60, 0x09,
642 	0x7c, 0x09, 0x80, 0x09, 0xb8, 0x09, 0xbc, 0x09,
643 	0xc0, 0x09, 0xc4, 0x09, 0xc8, 0x09, 0xcc, 0x09,
644 	0xd0, 0x09, 0xd4, 0x09, 0xec, 0x09, 0xf4, 0x09,
645 	0xf6, 0x09, 0xf8, 0x09, 0xfa, 0x09, 0xfc, 0x09,
646 	0xfe, 0x09, 0x00, 0x0a, 0x02, 0x0a, 0x04, 0x0a,
647 	0x06, 0x0a, 0x08, 0x0a, 0x0a, 0x0a, 0x0c, 0x0a,
648 	0x10, 0x0a, 0x18, 0x0a, 0x24, 0x0a, 0x2c, 0x0a,
649 	0x32, 0x0a, 0x3c, 0x0a, 0x46, 0x0a, 0x4c, 0x0a,
650 	0x50, 0x0a, 0x54, 0x0a, 0x5a, 0x0a, 0x5e, 0x0a,
651 	0x66, 0x0a, 0x6c, 0x0a, 0x72, 0x0a, 0x78, 0x0a,
652 	0x7e, 0x0a, 0x7c, 0x0a, 0x82, 0x0a, 0x8c, 0x0a,
653 	0x92, 0x0a, 0x90, 0x0a, 0x98, 0x0a, 0x96, 0x0a,
654 	0xa2, 0x0a, 0xb2, 0x0a, 0xb6, 0x0a, 0xc4, 0x0a,
655 	0xe2, 0x0a, 0xe0, 0x0a, 0xe8, 0x0a, 0xee, 0x0a,
656 	0xf4, 0x0a, 0xf2, 0x0a, 0xf8, 0x0a, 0x0c, 0x0b,
657 	0x1a, 0x0b, 0x24, 0x0b, 0x40, 0x0b, 0x44, 0x0b,
658 	0x48, 0x0b, 0x4e, 0x0b, 0x4c, 0x0b, 0x52, 0x0b,
659 	0x68, 0x0b, 0x6c, 0x0b, 0x70, 0x0b, 0x76, 0x0b,
660 	0x88, 0x0b, 0x92, 0x0b, 0xbe, 0x0b, 0xca, 0x0b,
661 	0xce, 0x0b, 0xde, 0x0b, 0xf4, 0x0b, 0xfa, 0x0b,
662 	0x00, 0x0c, 0x24, 0x0c, 0x28, 0x0c, 0x30, 0x0c,
663 	0x36, 0x0c, 0x3c, 0x0c, 0x40, 0x0c, 0x4a, 0x0c,
664 	0x50, 0x0c, 0x58, 0x0c, 0x56, 0x0c, 0x5c, 0x0c,
665 	0x60, 0x0c, 0x64, 0x0c, 0x80, 0x0c, 0x94, 0x0c,
666 	0x9a, 0x0c, 0x98, 0x0c, 0x9e, 0x0c, 0xa4, 0x0c,
667 	0xa2, 0x0c, 0xa8, 0x0c, 0xac, 0x0c, 0xb0, 0x0c,
668 	0xb4, 0x0c, 0xb8, 0x0c, 0xbc, 0x0c, 0xce, 0x0c,
669 	0xd2, 0x0c, 0xd6, 0x0c, 0xf4, 0x0c, 0xfa, 0x0c,
670 	0x00, 0x0d, 0xfe, 0x0c, 0x06, 0x0d, 0x0e, 0x0d,
671 	0x0c, 0x0d, 0x16, 0x0d, 0x1c, 0x0d, 0x22, 0x0d,
672 	0x20, 0x0d, 0x30, 0x0d, 0x7e, 0x0d, 0x82, 0x0d,
673 	0x9a, 0x0d, 0xa0, 0x0d, 0xa6, 0x0d, 0xb0, 0x0d,
674 	0xb8, 0x0d, 0xc2, 0x0d, 0xc8, 0x0d, 0xce, 0x0d,
675 	0xd4, 0x0d, 0xdc, 0x0d, 0x1e, 0x0e, 0x2c, 0x0e,
676 	0x3e, 0x0e, 0x4c, 0x0e, 0x50, 0x0e, 0x5e, 0x0e,
677 	0xae, 0x0e, 0xb8, 0x0e, 0xc6, 0x0e, 0xca, 0x0e,
678 	0, 0
679 };
680 
681 /* Fixup command. */
682 #define	KUE_TRIGCMD_OFFSET	5
683 static unsigned char kue_trig_seg[] = {
684 	0xb6, 0xc3, 0x01, 0x00, 0x06, 0x64, 0x00, 0x00
685 };
686