• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/staging/msm/
1
2/* Copyright (c) 2009, Code Aurora Forum. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 * 02110-1301, USA.
17 */
18#include <linux/module.h>
19#include <linux/kernel.h>
20#include <linux/sched.h>
21#include <linux/time.h>
22#include <linux/init.h>
23#include <linux/interrupt.h>
24#include <linux/spinlock.h>
25#include <linux/hrtimer.h>
26#include <linux/clk.h>
27#include <mach/hardware.h>
28#include <linux/io.h>
29#include <linux/debugfs.h>
30
31#include <asm/system.h>
32#include <asm/mach-types.h>
33#include <linux/semaphore.h>
34#include <linux/uaccess.h>
35
36#include "mdp.h"
37#include "msm_fb.h"
38#include "mdp4.h"
39
40void mdp4_sw_reset(ulong bits)
41{
42	bits &= 0x1f;	/* 5 bits */
43	outpdw(MDP_BASE + 0x001c, bits);	/* MDP_SW_RESET */
44
45	while (inpdw(MDP_BASE + 0x001c) & bits) /* self clear when complete */
46		;
47	MSM_FB_INFO("mdp4_sw_reset: 0x%x\n", (int)bits);
48}
49
50void mdp4_overlay_cfg(int overlayer, int blt_mode, int refresh, int direct_out)
51{
52	ulong bits = 0;
53
54	if (blt_mode)
55		bits |= (1 << 3);
56	refresh &= 0x03;	/* 2 bites */
57	bits |= (refresh << 1);
58	direct_out &= 0x01;
59	bits |= direct_out;
60
61	if (overlayer == MDP4_MIXER0)
62		outpdw(MDP_BASE + 0x10004, bits); /* MDP_OVERLAY0_CFG */
63	else
64		outpdw(MDP_BASE + 0x18004, bits); /* MDP_OVERLAY1_CFG */
65
66	MSM_FB_INFO("mdp4_overlay_cfg: 0x%x\n", (int)inpdw(MDP_BASE + 0x10004));
67}
68
69void mdp4_display_intf_sel(int output, ulong intf)
70{
71	ulong bits, mask;
72
73	bits = inpdw(MDP_BASE + 0x0038);	/* MDP_DISP_INTF_SEL */
74
75	mask = 0x03;	/* 2 bits */
76	intf &= 0x03;	/* 2 bits */
77
78	switch (output) {
79	case EXTERNAL_INTF_SEL:
80		intf <<= 4;
81		mask <<= 4;
82		break;
83	case SECONDARY_INTF_SEL:
84		intf &= 0x02;	/* only MDDI and EBI2 support */
85		intf <<= 2;
86		mask <<= 2;
87		break;
88	default:
89		break;
90	}
91
92
93	bits &= ~mask;
94	bits |= intf;
95
96	outpdw(MDP_BASE + 0x0038, bits);	/* MDP_DISP_INTF_SEL */
97
98  MSM_FB_INFO("mdp4_display_intf_sel: 0x%x\n", (int)inpdw(MDP_BASE + 0x0038));
99}
100
101unsigned long mdp4_display_status(void)
102{
103	return inpdw(MDP_BASE + 0x0018) & 0x3ff;	/* MDP_DISPLAY_STATUS */
104}
105
106void mdp4_ebi2_lcd_setup(int lcd, ulong base, int ystride)
107{
108	/* always use memory map */
109	ystride &= 0x01fff;	/* 13 bits */
110	if (lcd == EBI2_LCD0) {
111		outpdw(MDP_BASE + 0x0060, base);/* MDP_EBI2_LCD0 */
112		outpdw(MDP_BASE + 0x0068, ystride);/* MDP_EBI2_LCD0_YSTRIDE */
113	} else {
114		outpdw(MDP_BASE + 0x0064, base);/* MDP_EBI2_LCD1 */
115		outpdw(MDP_BASE + 0x006c, ystride);/* MDP_EBI2_LCD1_YSTRIDE */
116	}
117}
118
119void mdp4_mddi_setup(int mddi, unsigned long id)
120{
121	ulong 	bits;
122
123	if (mddi == MDDI_EXTERNAL_SET)
124		bits = 0x02;
125	else if (mddi == MDDI_SECONDARY_SET)
126		bits = 0x01;
127	else
128		bits = 0;	/* PRIMARY_SET */
129
130	id <<= 16;
131
132	bits |= id;
133
134	outpdw(MDP_BASE + 0x0090, bits); /* MDP_MDDI_PARAM_WR_SEL */
135}
136
137int mdp_ppp_blit(struct fb_info *info, struct mdp_blit_req *req,
138	struct file **pp_src_file, struct file **pp_dst_file)
139{
140
141	/* not implemented yet */
142	return -1;
143}
144
145void mdp4_hw_init(void)
146{
147	ulong bits;
148
149	/* MDP cmd block enable */
150	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_ON, FALSE);
151
152#ifdef MDP4_ERROR
153	/*
154	 * Issue software reset on DMA_P will casue DMA_P dma engine stall
155	 * on LCDC mode. However DMA_P does not stall at MDDI mode.
156	 * This need further investigation.
157	 */
158	mdp4_sw_reset(0x17);
159#endif
160
161	mdp4_clear_lcdc();
162
163	mdp4_mixer_blend_init(0);
164	mdp4_mixer_blend_init(1);
165	mdp4_vg_qseed_init(0);
166	mdp4_vg_qseed_init(1);
167	mdp4_vg_csc_mv_setup(0);
168	mdp4_vg_csc_mv_setup(1);
169	mdp4_vg_csc_pre_bv_setup(0);
170	mdp4_vg_csc_pre_bv_setup(1);
171	mdp4_vg_csc_post_bv_setup(0);
172	mdp4_vg_csc_post_bv_setup(1);
173	mdp4_vg_csc_pre_lv_setup(0);
174	mdp4_vg_csc_pre_lv_setup(1);
175	mdp4_vg_csc_post_lv_setup(0);
176	mdp4_vg_csc_post_lv_setup(1);
177
178	mdp4_mixer_gc_lut_setup(0);
179	mdp4_mixer_gc_lut_setup(1);
180
181	mdp4_vg_igc_lut_setup(0);
182	mdp4_vg_igc_lut_setup(1);
183
184	 mdp4_rgb_igc_lut_setup(0);
185	 mdp4_rgb_igc_lut_setup(1);
186
187	outp32(MDP_EBI2_PORTMAP_MODE, 0x3);
188
189	/* system interrupts */
190
191	bits =  mdp_intr_mask;
192	outpdw(MDP_BASE + 0x0050, bits);/* enable specififed interrupts */
193
194	/* histogram */
195	MDP_OUTP(MDP_BASE + 0x95010, 1);	/* auto clear HIST */
196
197	/* enable histogram interrupts */
198	outpdw(MDP_BASE + 0x9501c, INTR_HIST_DONE);
199
200	/* For the max read pending cmd config below, if the MDP clock     */
201	/* is less than the AXI clock, then we must use 3 pending          */
202	/* pending requests.  Otherwise, we should use 8 pending requests. */
203	/* In the future we should do this detection automatically.	   */
204
205	/* max read pending cmd config */
206	outpdw(MDP_BASE + 0x004c, 0x02222);	/* 3 pending requests */
207
208	/* dma_p fetch config */
209	outpdw(MDP_BASE + 0x91004, 0x27);	/* burst size of 8 */
210
211#ifndef CONFIG_FB_MSM_OVERLAY
212	/* both REFRESH_MODE and DIRECT_OUT are ignored at BLT mode */
213	mdp4_overlay_cfg(MDP4_MIXER0, OVERLAY_MODE_BLT, 0, 0);
214	mdp4_overlay_cfg(MDP4_MIXER1, OVERLAY_MODE_BLT, 0, 0);
215#endif
216
217	/* MDP cmd block disable */
218	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_OFF, FALSE);
219}
220
221
222void mdp4_clear_lcdc(void)
223{
224	uint32 bits;
225
226	bits = inpdw(MDP_BASE + 0xc0000);
227	if (bits & 0x01) /* enabled already */
228		return;
229
230	outpdw(MDP_BASE + 0xc0004, 0);	/* vsync ctrl out */
231	outpdw(MDP_BASE + 0xc0008, 0);	/* vsync period */
232	outpdw(MDP_BASE + 0xc000c, 0);	/* vsync pusle width */
233	outpdw(MDP_BASE + 0xc0010, 0);	/* lcdc display HCTL */
234	outpdw(MDP_BASE + 0xc0014, 0);	/* lcdc display v start */
235	outpdw(MDP_BASE + 0xc0018, 0);	/* lcdc display v end */
236	outpdw(MDP_BASE + 0xc001c, 0);	/* lcdc active hctl */
237	outpdw(MDP_BASE + 0xc0020, 0);	/* lcdc active v start */
238	outpdw(MDP_BASE + 0xc0024, 0);	/* lcdc active v end */
239	outpdw(MDP_BASE + 0xc0028, 0);	/* lcdc board color */
240	outpdw(MDP_BASE + 0xc002c, 0);	/* lcdc underflow ctrl */
241	outpdw(MDP_BASE + 0xc0030, 0);	/* lcdc hsync skew */
242	outpdw(MDP_BASE + 0xc0034, 0);	/* lcdc test ctl */
243	outpdw(MDP_BASE + 0xc0038, 0);	/* lcdc ctl polarity */
244}
245
246static struct mdp_dma_data overlay1_data;
247static int intr_dma_p;
248static int intr_dma_s;
249static int intr_dma_e;
250static int intr_overlay0;
251static int intr_overlay1;
252
253irqreturn_t mdp4_isr(int irq, void *ptr)
254{
255	uint32 isr, mask, lcdc;
256	struct mdp_dma_data *dma;
257
258	mdp_is_in_isr = TRUE;
259
260	while (1) {
261		isr = inpdw(MDP_INTR_STATUS);
262		if (isr == 0)
263			break;
264
265		mask = inpdw(MDP_INTR_ENABLE);
266		outpdw(MDP_INTR_CLEAR, isr);
267
268		isr &= mask;
269
270		if (unlikely(isr == 0))
271			break;
272
273		if (isr & INTR_DMA_P_DONE) {
274			intr_dma_p++;
275			lcdc = inpdw(MDP_BASE + 0xc0000);
276			dma = &dma2_data;
277			if (lcdc & 0x01) {	/* LCDC enable */
278				/* disable LCDC interrupt */
279				mdp_intr_mask &= ~INTR_DMA_P_DONE;
280				outp32(MDP_INTR_ENABLE, mdp_intr_mask);
281				dma->waiting = FALSE;
282			} else {
283				dma->busy = FALSE;
284				mdp_pipe_ctrl(MDP_DMA2_BLOCK,
285					MDP_BLOCK_POWER_OFF, TRUE);
286			}
287			complete(&dma->comp);
288		}
289		if (isr & INTR_DMA_S_DONE) {
290			intr_dma_s++;
291			dma = &dma_s_data;
292			dma->busy = FALSE;
293			mdp_pipe_ctrl(MDP_DMA_S_BLOCK,
294					MDP_BLOCK_POWER_OFF, TRUE);
295			complete(&dma->comp);
296		}
297		if (isr & INTR_DMA_E_DONE) {
298			intr_dma_e++;
299			dma = &dma_e_data;
300			mdp_intr_mask &= ~INTR_DMA_E_DONE;
301			outp32(MDP_INTR_ENABLE, mdp_intr_mask);
302			dma->busy = FALSE;
303
304			if (dma->waiting) {
305				dma->waiting = FALSE;
306				complete(&dma->comp);
307			}
308		}
309		if (isr & INTR_OVERLAY0_DONE) {
310			intr_overlay0++;
311			lcdc = inpdw(MDP_BASE + 0xc0000);
312			dma = &dma2_data;
313			if (lcdc & 0x01) {	/* LCDC enable */
314				/* disable LCDC interrupt */
315				mdp_intr_mask &= ~INTR_OVERLAY0_DONE;
316				outp32(MDP_INTR_ENABLE, mdp_intr_mask);
317				dma->waiting = FALSE;
318				mdp4_overlay0_done_lcdc();
319			} else {	/* MDDI */
320				dma->busy = FALSE;
321#ifdef MDP4_NONBLOCKING
322				mdp_disable_irq_nolock(MDP_OVERLAY0_TERM);
323#endif
324				mdp_pipe_ctrl(MDP_OVERLAY0_BLOCK,
325					MDP_BLOCK_POWER_OFF, TRUE);
326				mdp4_overlay0_done_mddi();
327			}
328		}
329		if (isr & INTR_OVERLAY1_DONE) {
330			intr_overlay1++;
331			dma = &overlay1_data;
332			dma->busy = FALSE;
333			mdp_pipe_ctrl(MDP_OVERLAY1_BLOCK,
334					MDP_BLOCK_POWER_OFF, TRUE);
335			complete(&dma->comp);
336		}
337		if (isr & INTR_DMA_P_HISTOGRAM) {
338			isr = inpdw(MDP_DMA_P_HIST_INTR_STATUS);
339			mask = inpdw(MDP_DMA_P_HIST_INTR_ENABLE);
340			outpdw(MDP_DMA_P_HIST_INTR_CLEAR, isr);
341			isr &= mask;
342			if (isr & INTR_HIST_DONE) {
343				if (mdp_hist.r)
344					memcpy(mdp_hist.r, MDP_BASE + 0x95100,
345							mdp_hist.bin_cnt*4);
346				if (mdp_hist.g)
347					memcpy(mdp_hist.g, MDP_BASE + 0x95200,
348							mdp_hist.bin_cnt*4);
349				if (mdp_hist.b)
350					memcpy(mdp_hist.b, MDP_BASE + 0x95300,
351						mdp_hist.bin_cnt*4);
352				complete(&mdp_hist_comp);
353			}
354		}
355	}
356
357	mdp_is_in_isr = FALSE;
358
359	return IRQ_HANDLED;
360}
361
362
363/*
364 * QSEED tables
365 */
366
367static uint32 vg_qseed_table0[] = {
368	0x5556aaff, 0x00000000, 0x00000000, 0x00000000
369};
370
371static uint32 vg_qseed_table1[] = {
372	0x76543210, 0xfedcba98
373};
374
375static uint32 vg_qseed_table2[] = {
376	0x02000000, 0x00000000, 0x02060ff2, 0x00000008,
377	0x02090fe4, 0x00000013, 0x020a0fd9, 0x0ffc0021,
378	0x02080fce, 0x0ffa0030, 0x02030fc5, 0x0ff60042,
379	0x01fd0fbe, 0x0ff10054, 0x01f50fb6, 0x0fed0068,
380	0x01e90fb1, 0x0fe60080, 0x01dc0fae, 0x0fe10095,
381	0x01ca0fae, 0x0fda00ae, 0x01b70fad, 0x0fd600c6,
382	0x01a40fad, 0x0fcf00e0, 0x018f0faf, 0x0fc800fa,
383	0x01780fb1, 0x0fc30114, 0x015f0fb5, 0x0fbf012d,
384	0x01490fb7, 0x0fb70149, 0x012d0fbf, 0x0fb5015f,
385	0x01140fc3, 0x0fb10178, 0x00fa0fc8, 0x0faf018f,
386	0x00e00fcf, 0x0fad01a4, 0x00c60fd6, 0x0fad01b7,
387	0x00ae0fda, 0x0fae01ca, 0x00950fe1, 0x0fae01dc,
388	0x00800fe6, 0x0fb101e9, 0x00680fed, 0x0fb601f5,
389	0x00540ff1, 0x0fbe01fd, 0x00420ff6, 0x0fc50203,
390	0x00300ffa, 0x0fce0208, 0x00210ffc, 0x0fd9020a,
391	0x00130000, 0x0fe40209, 0x00080000, 0x0ff20206,
392	0x02000000, 0x00000000, 0x02040ff2, 0x0000000a,
393	0x02040fe4, 0x00000018, 0x02010fda, 0x0ffc0029,
394	0x01fc0fcf, 0x0ffa003b, 0x01f30fc7, 0x0ff60050,
395	0x01e90fc0, 0x0ff20065, 0x01dc0fba, 0x0fee007c,
396	0x01cc0fb6, 0x0fe80096, 0x01ba0fb4, 0x0fe400ae,
397	0x01a70fb4, 0x0fdd00c8, 0x018f0fb5, 0x0fda00e2,
398	0x017a0fb5, 0x0fd400fd, 0x01630fb8, 0x0fce0117,
399	0x014c0fba, 0x0fca0130, 0x01320fbf, 0x0fc70148,
400	0x011b0fc1, 0x0fc10163, 0x01010fc8, 0x0fc00177,
401	0x00e90fcd, 0x0fbd018d, 0x00d10fd1, 0x0fbc01a2,
402	0x00ba0fd7, 0x0fbb01b4, 0x00a30fdd, 0x0fbc01c4,
403	0x008e0fe1, 0x0fbd01d4, 0x00790fe7, 0x0fbe01e2,
404	0x00670feb, 0x0fc001ee, 0x00540ff1, 0x0fc501f6,
405	0x00430ff4, 0x0fcb01fe, 0x00340ff8, 0x0fd10203,
406	0x00260ffb, 0x0fd80207, 0x001a0ffd, 0x0fe10208,
407	0x000f0000, 0x0fea0207, 0x00060000, 0x0ff50205,
408	0x02000000, 0x00000000, 0x02020ff2, 0x0000000c,
409	0x02000fe4, 0x0000001c, 0x01fa0fda, 0x0ffc0030,
410	0x01f10fd0, 0x0ffa0045, 0x01e50fc8, 0x0ff6005d,
411	0x01d60fc3, 0x0ff30074, 0x01c60fbd, 0x0fef008e,
412	0x01b30fba, 0x0fe900aa, 0x019e0fb9, 0x0fe500c4,
413	0x01870fba, 0x0fe000df, 0x016f0fbb, 0x0fdd00f9,
414	0x01580fbc, 0x0fd80114, 0x01400fbf, 0x0fd3012e,
415	0x01280fc2, 0x0fd00146, 0x010f0fc6, 0x0fce015d,
416	0x00f90fc9, 0x0fc90175, 0x00e00fcf, 0x0fc90188,
417	0x00ca0fd4, 0x0fc6019c, 0x00b40fd8, 0x0fc601ae,
418	0x009f0fdd, 0x0fc501bf, 0x008b0fe3, 0x0fc601cc,
419	0x00780fe6, 0x0fc701db, 0x00660feb, 0x0fc801e7,
420	0x00560fef, 0x0fcb01f0, 0x00460ff3, 0x0fcf01f8,
421	0x00380ff6, 0x0fd401fe, 0x002c0ff9, 0x0fd90202,
422	0x00200ffc, 0x0fdf0205, 0x00160ffe, 0x0fe60206,
423	0x000c0000, 0x0fed0207, 0x00050000, 0x0ff70204,
424	0x02000000, 0x00000000, 0x01fe0ff3, 0x0000000f,
425	0x01f60fe5, 0x00000025, 0x01ea0fdb, 0x0ffd003e,
426	0x01db0fd2, 0x0ffb0058, 0x01c80fcc, 0x0ff70075,
427	0x01b50fc7, 0x0ff40090, 0x01a00fc3, 0x0ff000ad,
428	0x01880fc1, 0x0feb00cc, 0x01700fc1, 0x0fe800e7,
429	0x01550fc3, 0x0fe40104, 0x013b0fc5, 0x0fe2011e,
430	0x01240fc6, 0x0fde0138, 0x010c0fca, 0x0fda0150,
431	0x00f40fcd, 0x0fd90166, 0x00dd0fd1, 0x0fd7017b,
432	0x00c80fd4, 0x0fd40190, 0x00b20fd9, 0x0fd401a1,
433	0x009f0fdd, 0x0fd301b1, 0x008c0fe1, 0x0fd301c0,
434	0x007b0fe5, 0x0fd301cd, 0x006a0fea, 0x0fd401d8,
435	0x005c0fec, 0x0fd501e3, 0x004d0ff0, 0x0fd601ed,
436	0x00410ff3, 0x0fd801f4, 0x00340ff7, 0x0fdb01fa,
437	0x002a0ff9, 0x0fdf01fe, 0x00200ffb, 0x0fe30202,
438	0x00180ffd, 0x0fe70204, 0x00100ffe, 0x0fed0205,
439	0x00090000, 0x0ff20205, 0x00040000, 0x0ff90203,
440	0x02000000, 0x00000000, 0x02050ff5, 0x00000006,
441	0x02070fea, 0x0000000f, 0x02080fe1, 0x0ffd001a,
442	0x02070fd8, 0x0ffb0026, 0x02030fd1, 0x0ff80034,
443	0x01fe0fcb, 0x0ff40043, 0x01f60fc5, 0x0ff10054,
444	0x01ee0fc0, 0x0feb0067, 0x01e20fbe, 0x0fe70079,
445	0x01d40fbd, 0x0fe1008e, 0x01c40fbc, 0x0fdd00a3,
446	0x01b40fbb, 0x0fd700ba, 0x01a20fbc, 0x0fd100d1,
447	0x018d0fbd, 0x0fcd00e9, 0x01770fc0, 0x0fc80101,
448	0x01630fc1, 0x0fc1011b, 0x01480fc7, 0x0fbf0132,
449	0x01300fca, 0x0fba014c, 0x01170fce, 0x0fb80163,
450	0x00fd0fd4, 0x0fb5017a, 0x00e20fda, 0x0fb5018f,
451	0x00c80fdd, 0x0fb401a7, 0x00ae0fe4, 0x0fb401ba,
452	0x00960fe8, 0x0fb601cc, 0x007c0fee, 0x0fba01dc,
453	0x00650ff2, 0x0fc001e9, 0x00500ff6, 0x0fc701f3,
454	0x003b0ffa, 0x0fcf01fc, 0x00290ffc, 0x0fda0201,
455	0x00180000, 0x0fe40204, 0x000a0000, 0x0ff20204,
456	0x02000000, 0x00000000, 0x02030ff5, 0x00000008,
457	0x02030fea, 0x00000013, 0x02020fe1, 0x0ffd0020,
458	0x01fc0fd9, 0x0ffc002f, 0x01f60fd2, 0x0ff80040,
459	0x01ed0fcd, 0x0ff50051, 0x01e30fc7, 0x0ff10065,
460	0x01d70fc3, 0x0fec007a, 0x01c60fc2, 0x0fe9008f,
461	0x01b60fc1, 0x0fe300a6, 0x01a20fc1, 0x0fe000bd,
462	0x018f0fc1, 0x0fdb00d5, 0x017b0fc2, 0x0fd500ee,
463	0x01640fc4, 0x0fd20106, 0x014d0fc8, 0x0fce011d,
464	0x01370fc9, 0x0fc90137, 0x011d0fce, 0x0fc8014d,
465	0x01060fd2, 0x0fc40164, 0x00ee0fd5, 0x0fc2017b,
466	0x00d50fdb, 0x0fc1018f, 0x00bd0fe0, 0x0fc101a2,
467	0x00a60fe3, 0x0fc101b6, 0x008f0fe9, 0x0fc201c6,
468	0x007a0fec, 0x0fc301d7, 0x00650ff1, 0x0fc701e3,
469	0x00510ff5, 0x0fcd01ed, 0x00400ff8, 0x0fd201f6,
470	0x002f0ffc, 0x0fd901fc, 0x00200ffd, 0x0fe10202,
471	0x00130000, 0x0fea0203, 0x00080000, 0x0ff50203,
472	0x02000000, 0x00000000, 0x02020ff5, 0x00000009,
473	0x01ff0fea, 0x00000017, 0x01fb0fe2, 0x0ffd0026,
474	0x01f30fda, 0x0ffc0037, 0x01ea0fd3, 0x0ff8004b,
475	0x01df0fce, 0x0ff5005e, 0x01d10fc9, 0x0ff20074,
476	0x01c10fc6, 0x0fed008c, 0x01ae0fc5, 0x0fea00a3,
477	0x019b0fc5, 0x0fe500bb, 0x01850fc6, 0x0fe200d3,
478	0x01700fc6, 0x0fde00ec, 0x015a0fc8, 0x0fd90105,
479	0x01430fca, 0x0fd6011d, 0x012b0fcd, 0x0fd30135,
480	0x01150fcf, 0x0fcf014d, 0x00fc0fd4, 0x0fce0162,
481	0x00e50fd8, 0x0fcc0177, 0x00cf0fdb, 0x0fca018c,
482	0x00b80fe0, 0x0fc9019f, 0x00a20fe5, 0x0fca01af,
483	0x008e0fe8, 0x0fcb01bf, 0x00790fec, 0x0fcb01d0,
484	0x00670fef, 0x0fcd01dd, 0x00550ff4, 0x0fd001e7,
485	0x00440ff7, 0x0fd501f0, 0x00350ffa, 0x0fda01f7,
486	0x00270ffc, 0x0fdf01fe, 0x001b0ffe, 0x0fe70200,
487	0x00100000, 0x0fee0202, 0x00060000, 0x0ff70203,
488	0x02000000, 0x00000000, 0x01ff0ff5, 0x0000000c,
489	0x01f80fea, 0x0000001e, 0x01ef0fe2, 0x0ffd0032,
490	0x01e20fdb, 0x0ffc0047, 0x01d30fd5, 0x0ff9005f,
491	0x01c20fd1, 0x0ff60077, 0x01b00fcd, 0x0ff30090,
492	0x019b0fcb, 0x0fef00ab, 0x01850fcb, 0x0fec00c4,
493	0x016e0fcc, 0x0fe800de, 0x01550fcd, 0x0fe600f8,
494	0x013f0fce, 0x0fe20111, 0x01280fd0, 0x0fdf0129,
495	0x01110fd2, 0x0fdd0140, 0x00f90fd6, 0x0fdb0156,
496	0x00e40fd8, 0x0fd8016c, 0x00cd0fdd, 0x0fd8017e,
497	0x00b80fe0, 0x0fd60192, 0x00a40fe3, 0x0fd601a3,
498	0x00910fe7, 0x0fd501b3, 0x007f0feb, 0x0fd601c0,
499	0x006e0fed, 0x0fd701ce, 0x005d0ff1, 0x0fd701db,
500	0x004f0ff3, 0x0fd901e5, 0x00400ff7, 0x0fdc01ed,
501	0x00330ff9, 0x0fe001f4, 0x00280ffb, 0x0fe301fa,
502	0x001d0ffd, 0x0fe801fe, 0x00140ffe, 0x0fed0201,
503	0x000c0000, 0x0ff20202, 0x00050000, 0x0ff90202,
504	0x02000000, 0x00000000, 0x02040ff7, 0x00000005,
505	0x02070fed, 0x0000000c, 0x02060fe6, 0x0ffe0016,
506	0x02050fdf, 0x0ffc0020, 0x02020fd9, 0x0ff9002c,
507	0x01fe0fd4, 0x0ff60038, 0x01f80fcf, 0x0ff30046,
508	0x01f00fcb, 0x0fef0056, 0x01e70fc8, 0x0feb0066,
509	0x01db0fc7, 0x0fe60078, 0x01cc0fc6, 0x0fe3008b,
510	0x01bf0fc5, 0x0fdd009f, 0x01ae0fc6, 0x0fd800b4,
511	0x019c0fc6, 0x0fd400ca, 0x01880fc9, 0x0fcf00e0,
512	0x01750fc9, 0x0fc900f9, 0x015d0fce, 0x0fc6010f,
513	0x01460fd0, 0x0fc20128, 0x012e0fd3, 0x0fbf0140,
514	0x01140fd8, 0x0fbc0158, 0x00f90fdd, 0x0fbb016f,
515	0x00df0fe0, 0x0fba0187, 0x00c40fe5, 0x0fb9019e,
516	0x00aa0fe9, 0x0fba01b3, 0x008e0fef, 0x0fbd01c6,
517	0x00740ff3, 0x0fc301d6, 0x005d0ff6, 0x0fc801e5,
518	0x00450ffa, 0x0fd001f1, 0x00300ffc, 0x0fda01fa,
519	0x001c0000, 0x0fe40200, 0x000c0000, 0x0ff20202,
520	0x02000000, 0x00000000, 0x02030ff7, 0x00000006,
521	0x02020fee, 0x00000010, 0x02000fe7, 0x0ffe001b,
522	0x01fe0fdf, 0x0ffc0027, 0x01f70fda, 0x0ffa0035,
523	0x01f00fd5, 0x0ff70044, 0x01e70fd0, 0x0ff40055,
524	0x01dd0fcd, 0x0fef0067, 0x01d00fcb, 0x0fec0079,
525	0x01bf0fcb, 0x0fe8008e, 0x01af0fca, 0x0fe500a2,
526	0x019f0fc9, 0x0fe000b8, 0x018c0fca, 0x0fdb00cf,
527	0x01770fcc, 0x0fd800e5, 0x01620fce, 0x0fd400fc,
528	0x014d0fcf, 0x0fcf0115, 0x01350fd3, 0x0fcd012b,
529	0x011d0fd6, 0x0fca0143, 0x01050fd9, 0x0fc8015a,
530	0x00ec0fde, 0x0fc60170, 0x00d30fe2, 0x0fc60185,
531	0x00bb0fe5, 0x0fc5019b, 0x00a30fea, 0x0fc501ae,
532	0x008c0fed, 0x0fc601c1, 0x00740ff2, 0x0fc901d1,
533	0x005e0ff5, 0x0fce01df, 0x004b0ff8, 0x0fd301ea,
534	0x00370ffc, 0x0fda01f3, 0x00260ffd, 0x0fe201fb,
535	0x00170000, 0x0fea01ff, 0x00090000, 0x0ff50202,
536	0x02000000, 0x00000000, 0x02010ff7, 0x00000008,
537	0x01ff0fee, 0x00000013, 0x01fb0fe7, 0x0ffe0020,
538	0x01f60fe0, 0x0ffc002e, 0x01ed0fda, 0x0ffa003f,
539	0x01e40fd6, 0x0ff7004f, 0x01d80fd2, 0x0ff40062,
540	0x01ca0fcf, 0x0ff00077, 0x01bb0fcd, 0x0fed008b,
541	0x01a90fcd, 0x0fe900a1, 0x01960fcd, 0x0fe600b7,
542	0x01830fcd, 0x0fe200ce, 0x016d0fcf, 0x0fde00e6,
543	0x01580fd0, 0x0fdb00fd, 0x01410fd3, 0x0fd80114,
544	0x012c0fd4, 0x0fd4012c, 0x01140fd8, 0x0fd30141,
545	0x00fd0fdb, 0x0fd00158, 0x00e60fde, 0x0fcf016d,
546	0x00ce0fe2, 0x0fcd0183, 0x00b70fe6, 0x0fcd0196,
547	0x00a10fe9, 0x0fcd01a9, 0x008b0fed, 0x0fcd01bb,
548	0x00770ff0, 0x0fcf01ca, 0x00620ff4, 0x0fd201d8,
549	0x004f0ff7, 0x0fd601e4, 0x003f0ffa, 0x0fda01ed,
550	0x002e0ffc, 0x0fe001f6, 0x00200ffe, 0x0fe701fb,
551	0x00130000, 0x0fee01ff, 0x00080000, 0x0ff70201,
552	0x02000000, 0x00000000, 0x01ff0ff7, 0x0000000a,
553	0x01f90fee, 0x00000019, 0x01f10fe7, 0x0ffe002a,
554	0x01e60fe1, 0x0ffd003c, 0x01d90fdc, 0x0ffa0051,
555	0x01cc0fd8, 0x0ff70065, 0x01bb0fd5, 0x0ff5007b,
556	0x01a80fd3, 0x0ff10094, 0x01950fd2, 0x0fef00aa,
557	0x01800fd2, 0x0feb00c3, 0x016a0fd3, 0x0fe900da,
558	0x01540fd3, 0x0fe600f3, 0x013f0fd5, 0x0fe2010a,
559	0x01280fd7, 0x0fe00121, 0x01100fda, 0x0fde0138,
560	0x00fb0fdb, 0x0fdb014f, 0x00e40fdf, 0x0fdb0162,
561	0x00ce0fe2, 0x0fd90177, 0x00b90fe4, 0x0fd8018b,
562	0x00a50fe8, 0x0fd8019b, 0x00910fec, 0x0fd801ab,
563	0x007e0fee, 0x0fd801bc, 0x006c0ff2, 0x0fd901c9,
564	0x005c0ff4, 0x0fda01d6, 0x004b0ff7, 0x0fdd01e1,
565	0x003c0ff9, 0x0fe001eb, 0x002f0ffb, 0x0fe401f2,
566	0x00230ffd, 0x0fe801f8, 0x00180ffe, 0x0fed01fd,
567	0x000e0000, 0x0ff20200, 0x00060000, 0x0ff90201,
568	0x02000000, 0x00000000, 0x02030ff9, 0x00000004,
569	0x02050ff2, 0x00000009, 0x02050fed, 0x0ffe0010,
570	0x02040fe7, 0x0ffd0018, 0x02020fe3, 0x0ffb0020,
571	0x01fe0fdf, 0x0ff9002a, 0x01fa0fdb, 0x0ff70034,
572	0x01f40fd8, 0x0ff30041, 0x01ed0fd6, 0x0ff0004d,
573	0x01e30fd5, 0x0fec005c, 0x01d80fd4, 0x0fea006a,
574	0x01cd0fd3, 0x0fe5007b, 0x01c00fd3, 0x0fe1008c,
575	0x01b10fd3, 0x0fdd009f, 0x01a10fd4, 0x0fd900b2,
576	0x01900fd4, 0x0fd400c8, 0x017b0fd7, 0x0fd100dd,
577	0x01660fd9, 0x0fcd00f4, 0x01500fda, 0x0fca010c,
578	0x01380fde, 0x0fc60124, 0x011e0fe2, 0x0fc5013b,
579	0x01040fe4, 0x0fc30155, 0x00e70fe8, 0x0fc10170,
580	0x00cc0feb, 0x0fc10188, 0x00ad0ff0, 0x0fc301a0,
581	0x00900ff4, 0x0fc701b5, 0x00750ff7, 0x0fcc01c8,
582	0x00580ffb, 0x0fd201db, 0x003e0ffd, 0x0fdb01ea,
583	0x00250000, 0x0fe501f6, 0x000f0000, 0x0ff301fe,
584	0x02000000, 0x00000000, 0x02020ff9, 0x00000005,
585	0x02020ff2, 0x0000000c, 0x02010fed, 0x0ffe0014,
586	0x01fe0fe8, 0x0ffd001d, 0x01fa0fe3, 0x0ffb0028,
587	0x01f40fe0, 0x0ff90033, 0x01ed0fdc, 0x0ff70040,
588	0x01e50fd9, 0x0ff3004f, 0x01db0fd7, 0x0ff1005d,
589	0x01ce0fd7, 0x0fed006e, 0x01c00fd6, 0x0feb007f,
590	0x01b30fd5, 0x0fe70091, 0x01a30fd6, 0x0fe300a4,
591	0x01920fd6, 0x0fe000b8, 0x017e0fd8, 0x0fdd00cd,
592	0x016c0fd8, 0x0fd800e4, 0x01560fdb, 0x0fd600f9,
593	0x01400fdd, 0x0fd20111, 0x01290fdf, 0x0fd00128,
594	0x01110fe2, 0x0fce013f, 0x00f80fe6, 0x0fcd0155,
595	0x00de0fe8, 0x0fcc016e, 0x00c40fec, 0x0fcb0185,
596	0x00ab0fef, 0x0fcb019b, 0x00900ff3, 0x0fcd01b0,
597	0x00770ff6, 0x0fd101c2, 0x005f0ff9, 0x0fd501d3,
598	0x00470ffc, 0x0fdb01e2, 0x00320ffd, 0x0fe201ef,
599	0x001e0000, 0x0fea01f8, 0x000c0000, 0x0ff501ff,
600	0x02000000, 0x00000000, 0x02010ff9, 0x00000006,
601	0x02000ff2, 0x0000000e, 0x01fd0fed, 0x0ffe0018,
602	0x01f80fe8, 0x0ffd0023, 0x01f20fe4, 0x0ffb002f,
603	0x01eb0fe0, 0x0ff9003c, 0x01e10fdd, 0x0ff7004b,
604	0x01d60fda, 0x0ff4005c, 0x01c90fd9, 0x0ff2006c,
605	0x01bc0fd8, 0x0fee007e, 0x01ab0fd8, 0x0fec0091,
606	0x019b0fd8, 0x0fe800a5, 0x018b0fd8, 0x0fe400b9,
607	0x01770fd9, 0x0fe200ce, 0x01620fdb, 0x0fdf00e4,
608	0x014f0fdb, 0x0fdb00fb, 0x01380fde, 0x0fda0110,
609	0x01210fe0, 0x0fd70128, 0x010a0fe2, 0x0fd5013f,
610	0x00f30fe6, 0x0fd30154, 0x00da0fe9, 0x0fd3016a,
611	0x00c30feb, 0x0fd20180, 0x00aa0fef, 0x0fd20195,
612	0x00940ff1, 0x0fd301a8, 0x007b0ff5, 0x0fd501bb,
613	0x00650ff7, 0x0fd801cc, 0x00510ffa, 0x0fdc01d9,
614	0x003c0ffd, 0x0fe101e6, 0x002a0ffe, 0x0fe701f1,
615	0x00190000, 0x0fee01f9, 0x000a0000, 0x0ff701ff,
616	0x02000000, 0x00000000, 0x01ff0ff9, 0x00000008,
617	0x01fb0ff2, 0x00000013, 0x01f50fed, 0x0ffe0020,
618	0x01ed0fe8, 0x0ffd002e, 0x01e30fe4, 0x0ffb003e,
619	0x01d80fe1, 0x0ff9004e, 0x01cb0fde, 0x0ff70060,
620	0x01bc0fdc, 0x0ff40074, 0x01ac0fdb, 0x0ff20087,
621	0x019a0fdb, 0x0fef009c, 0x01870fdb, 0x0fed00b1,
622	0x01740fdb, 0x0fea00c7, 0x01600fdc, 0x0fe700dd,
623	0x014b0fdd, 0x0fe500f3, 0x01350fdf, 0x0fe30109,
624	0x01200fe0, 0x0fe00120, 0x01090fe3, 0x0fdf0135,
625	0x00f30fe5, 0x0fdd014b, 0x00dd0fe7, 0x0fdc0160,
626	0x00c70fea, 0x0fdb0174, 0x00b10fed, 0x0fdb0187,
627	0x009c0fef, 0x0fdb019a, 0x00870ff2, 0x0fdb01ac,
628	0x00740ff4, 0x0fdc01bc, 0x00600ff7, 0x0fde01cb,
629	0x004e0ff9, 0x0fe101d8, 0x003e0ffb, 0x0fe401e3,
630	0x002e0ffd, 0x0fe801ed, 0x00200ffe, 0x0fed01f5,
631	0x00130000, 0x0ff201fb, 0x00080000, 0x0ff901ff,
632	0x02000000, 0x00000000, 0x02060ff2, 0x00000008,
633	0x02090fe4, 0x00000013, 0x020a0fd9, 0x0ffc0021,
634	0x02080fce, 0x0ffa0030, 0x02030fc5, 0x0ff60042,
635	0x01fd0fbe, 0x0ff10054, 0x01f50fb6, 0x0fed0068,
636	0x01e90fb1, 0x0fe60080, 0x01dc0fae, 0x0fe10095,
637	0x01ca0fae, 0x0fda00ae, 0x01b70fad, 0x0fd600c6,
638	0x01a40fad, 0x0fcf00e0, 0x018f0faf, 0x0fc800fa,
639	0x01780fb1, 0x0fc30114, 0x015f0fb5, 0x0fbf012d,
640	0x01490fb7, 0x0fb70149, 0x012d0fbf, 0x0fb5015f,
641	0x01140fc3, 0x0fb10178, 0x00fa0fc8, 0x0faf018f,
642	0x00e00fcf, 0x0fad01a4, 0x00c60fd6, 0x0fad01b7,
643	0x00ae0fda, 0x0fae01ca, 0x00950fe1, 0x0fae01dc,
644	0x00800fe6, 0x0fb101e9, 0x00680fed, 0x0fb601f5,
645	0x00540ff1, 0x0fbe01fd, 0x00420ff6, 0x0fc50203,
646	0x00300ffa, 0x0fce0208, 0x00210ffc, 0x0fd9020a,
647	0x00130000, 0x0fe40209, 0x00080000, 0x0ff20206,
648	0x02000000, 0x00000000, 0x02040ff2, 0x0000000a,
649	0x02040fe4, 0x00000018, 0x02010fda, 0x0ffc0029,
650	0x01fc0fcf, 0x0ffa003b, 0x01f30fc7, 0x0ff60050,
651	0x01e90fc0, 0x0ff20065, 0x01dc0fba, 0x0fee007c,
652	0x01cc0fb6, 0x0fe80096, 0x01ba0fb4, 0x0fe400ae,
653	0x01a70fb4, 0x0fdd00c8, 0x018f0fb5, 0x0fda00e2,
654	0x017a0fb5, 0x0fd400fd, 0x01630fb8, 0x0fce0117,
655	0x014c0fba, 0x0fca0130, 0x01320fbf, 0x0fc70148,
656	0x011b0fc1, 0x0fc10163, 0x01010fc8, 0x0fc00177,
657	0x00e90fcd, 0x0fbd018d, 0x00d10fd1, 0x0fbc01a2,
658	0x00ba0fd7, 0x0fbb01b4, 0x00a30fdd, 0x0fbc01c4,
659	0x008e0fe1, 0x0fbd01d4, 0x00790fe7, 0x0fbe01e2,
660	0x00670feb, 0x0fc001ee, 0x00540ff1, 0x0fc501f6,
661	0x00430ff4, 0x0fcb01fe, 0x00340ff8, 0x0fd10203,
662	0x00260ffb, 0x0fd80207, 0x001a0ffd, 0x0fe10208,
663	0x000f0000, 0x0fea0207, 0x00060000, 0x0ff50205,
664	0x02000000, 0x00000000, 0x02020ff2, 0x0000000c,
665	0x02000fe4, 0x0000001c, 0x01fa0fda, 0x0ffc0030,
666	0x01f10fd0, 0x0ffa0045, 0x01e50fc8, 0x0ff6005d,
667	0x01d60fc3, 0x0ff30074, 0x01c60fbd, 0x0fef008e,
668	0x01b30fba, 0x0fe900aa, 0x019e0fb9, 0x0fe500c4,
669	0x01870fba, 0x0fe000df, 0x016f0fbb, 0x0fdd00f9,
670	0x01580fbc, 0x0fd80114, 0x01400fbf, 0x0fd3012e,
671	0x01280fc2, 0x0fd00146, 0x010f0fc6, 0x0fce015d,
672	0x00f90fc9, 0x0fc90175, 0x00e00fcf, 0x0fc90188,
673	0x00ca0fd4, 0x0fc6019c, 0x00b40fd8, 0x0fc601ae,
674	0x009f0fdd, 0x0fc501bf, 0x008b0fe3, 0x0fc601cc,
675	0x00780fe6, 0x0fc701db, 0x00660feb, 0x0fc801e7,
676	0x00560fef, 0x0fcb01f0, 0x00460ff3, 0x0fcf01f8,
677	0x00380ff6, 0x0fd401fe, 0x002c0ff9, 0x0fd90202,
678	0x00200ffc, 0x0fdf0205, 0x00160ffe, 0x0fe60206,
679	0x000c0000, 0x0fed0207, 0x00050000, 0x0ff70204,
680	0x02000000, 0x00000000, 0x01fe0ff3, 0x0000000f,
681	0x01f60fe5, 0x00000025, 0x01ea0fdb, 0x0ffd003e,
682	0x01db0fd2, 0x0ffb0058, 0x01c80fcc, 0x0ff70075,
683	0x01b50fc7, 0x0ff40090, 0x01a00fc3, 0x0ff000ad,
684	0x01880fc1, 0x0feb00cc, 0x01700fc1, 0x0fe800e7,
685	0x01550fc3, 0x0fe40104, 0x013b0fc5, 0x0fe2011e,
686	0x01240fc6, 0x0fde0138, 0x010c0fca, 0x0fda0150,
687	0x00f40fcd, 0x0fd90166, 0x00dd0fd1, 0x0fd7017b,
688	0x00c80fd4, 0x0fd40190, 0x00b20fd9, 0x0fd401a1,
689	0x009f0fdd, 0x0fd301b1, 0x008c0fe1, 0x0fd301c0,
690	0x007b0fe5, 0x0fd301cd, 0x006a0fea, 0x0fd401d8,
691	0x005c0fec, 0x0fd501e3, 0x004d0ff0, 0x0fd601ed,
692	0x00410ff3, 0x0fd801f4, 0x00340ff7, 0x0fdb01fa,
693	0x002a0ff9, 0x0fdf01fe, 0x00200ffb, 0x0fe30202,
694	0x00180ffd, 0x0fe70204, 0x00100ffe, 0x0fed0205,
695	0x00090000, 0x0ff20205, 0x00040000, 0x0ff90203,
696	0x02000000, 0x00000000, 0x02050ff5, 0x00000006,
697	0x02070fea, 0x0000000f, 0x02080fe1, 0x0ffd001a,
698	0x02070fd8, 0x0ffb0026, 0x02030fd1, 0x0ff80034,
699	0x01fe0fcb, 0x0ff40043, 0x01f60fc5, 0x0ff10054,
700	0x01ee0fc0, 0x0feb0067, 0x01e20fbe, 0x0fe70079,
701	0x01d40fbd, 0x0fe1008e, 0x01c40fbc, 0x0fdd00a3,
702	0x01b40fbb, 0x0fd700ba, 0x01a20fbc, 0x0fd100d1,
703	0x018d0fbd, 0x0fcd00e9, 0x01770fc0, 0x0fc80101,
704	0x01630fc1, 0x0fc1011b, 0x01480fc7, 0x0fbf0132,
705	0x01300fca, 0x0fba014c, 0x01170fce, 0x0fb80163,
706	0x00fd0fd4, 0x0fb5017a, 0x00e20fda, 0x0fb5018f,
707	0x00c80fdd, 0x0fb401a7, 0x00ae0fe4, 0x0fb401ba,
708	0x00960fe8, 0x0fb601cc, 0x007c0fee, 0x0fba01dc,
709	0x00650ff2, 0x0fc001e9, 0x00500ff6, 0x0fc701f3,
710	0x003b0ffa, 0x0fcf01fc, 0x00290ffc, 0x0fda0201,
711	0x00180000, 0x0fe40204, 0x000a0000, 0x0ff20204,
712	0x02000000, 0x00000000, 0x02030ff5, 0x00000008,
713	0x02030fea, 0x00000013, 0x02020fe1, 0x0ffd0020,
714	0x01fc0fd9, 0x0ffc002f, 0x01f60fd2, 0x0ff80040,
715	0x01ed0fcd, 0x0ff50051, 0x01e30fc7, 0x0ff10065,
716	0x01d70fc3, 0x0fec007a, 0x01c60fc2, 0x0fe9008f,
717	0x01b60fc1, 0x0fe300a6, 0x01a20fc1, 0x0fe000bd,
718	0x018f0fc1, 0x0fdb00d5, 0x017b0fc2, 0x0fd500ee,
719	0x01640fc4, 0x0fd20106, 0x014d0fc8, 0x0fce011d,
720	0x01370fc9, 0x0fc90137, 0x011d0fce, 0x0fc8014d,
721	0x01060fd2, 0x0fc40164, 0x00ee0fd5, 0x0fc2017b,
722	0x00d50fdb, 0x0fc1018f, 0x00bd0fe0, 0x0fc101a2,
723	0x00a60fe3, 0x0fc101b6, 0x008f0fe9, 0x0fc201c6,
724	0x007a0fec, 0x0fc301d7, 0x00650ff1, 0x0fc701e3,
725	0x00510ff5, 0x0fcd01ed, 0x00400ff8, 0x0fd201f6,
726	0x002f0ffc, 0x0fd901fc, 0x00200ffd, 0x0fe10202,
727	0x00130000, 0x0fea0203, 0x00080000, 0x0ff50203,
728	0x02000000, 0x00000000, 0x02020ff5, 0x00000009,
729	0x01ff0fea, 0x00000017, 0x01fb0fe2, 0x0ffd0026,
730	0x01f30fda, 0x0ffc0037, 0x01ea0fd3, 0x0ff8004b,
731	0x01df0fce, 0x0ff5005e, 0x01d10fc9, 0x0ff20074,
732	0x01c10fc6, 0x0fed008c, 0x01ae0fc5, 0x0fea00a3,
733	0x019b0fc5, 0x0fe500bb, 0x01850fc6, 0x0fe200d3,
734	0x01700fc6, 0x0fde00ec, 0x015a0fc8, 0x0fd90105,
735	0x01430fca, 0x0fd6011d, 0x012b0fcd, 0x0fd30135,
736	0x01150fcf, 0x0fcf014d, 0x00fc0fd4, 0x0fce0162,
737	0x00e50fd8, 0x0fcc0177, 0x00cf0fdb, 0x0fca018c,
738	0x00b80fe0, 0x0fc9019f, 0x00a20fe5, 0x0fca01af,
739	0x008e0fe8, 0x0fcb01bf, 0x00790fec, 0x0fcb01d0,
740	0x00670fef, 0x0fcd01dd, 0x00550ff4, 0x0fd001e7,
741	0x00440ff7, 0x0fd501f0, 0x00350ffa, 0x0fda01f7,
742	0x00270ffc, 0x0fdf01fe, 0x001b0ffe, 0x0fe70200,
743	0x00100000, 0x0fee0202, 0x00060000, 0x0ff70203,
744	0x02000000, 0x00000000, 0x01ff0ff5, 0x0000000c,
745	0x01f80fea, 0x0000001e, 0x01ef0fe2, 0x0ffd0032,
746	0x01e20fdb, 0x0ffc0047, 0x01d30fd5, 0x0ff9005f,
747	0x01c20fd1, 0x0ff60077, 0x01b00fcd, 0x0ff30090,
748	0x019b0fcb, 0x0fef00ab, 0x01850fcb, 0x0fec00c4,
749	0x016e0fcc, 0x0fe800de, 0x01550fcd, 0x0fe600f8,
750	0x013f0fce, 0x0fe20111, 0x01280fd0, 0x0fdf0129,
751	0x01110fd2, 0x0fdd0140, 0x00f90fd6, 0x0fdb0156,
752	0x00e40fd8, 0x0fd8016c, 0x00cd0fdd, 0x0fd8017e,
753	0x00b80fe0, 0x0fd60192, 0x00a40fe3, 0x0fd601a3,
754	0x00910fe7, 0x0fd501b3, 0x007f0feb, 0x0fd601c0,
755	0x006e0fed, 0x0fd701ce, 0x005d0ff1, 0x0fd701db,
756	0x004f0ff3, 0x0fd901e5, 0x00400ff7, 0x0fdc01ed,
757	0x00330ff9, 0x0fe001f4, 0x00280ffb, 0x0fe301fa,
758	0x001d0ffd, 0x0fe801fe, 0x00140ffe, 0x0fed0201,
759	0x000c0000, 0x0ff20202, 0x00050000, 0x0ff90202,
760	0x02000000, 0x00000000, 0x02040ff7, 0x00000005,
761	0x02070fed, 0x0000000c, 0x02060fe6, 0x0ffe0016,
762	0x02050fdf, 0x0ffc0020, 0x02020fd9, 0x0ff9002c,
763	0x01fe0fd4, 0x0ff60038, 0x01f80fcf, 0x0ff30046,
764	0x01f00fcb, 0x0fef0056, 0x01e70fc8, 0x0feb0066,
765	0x01db0fc7, 0x0fe60078, 0x01cc0fc6, 0x0fe3008b,
766	0x01bf0fc5, 0x0fdd009f, 0x01ae0fc6, 0x0fd800b4,
767	0x019c0fc6, 0x0fd400ca, 0x01880fc9, 0x0fcf00e0,
768	0x01750fc9, 0x0fc900f9, 0x015d0fce, 0x0fc6010f,
769	0x01460fd0, 0x0fc20128, 0x012e0fd3, 0x0fbf0140,
770	0x01140fd8, 0x0fbc0158, 0x00f90fdd, 0x0fbb016f,
771	0x00df0fe0, 0x0fba0187, 0x00c40fe5, 0x0fb9019e,
772	0x00aa0fe9, 0x0fba01b3, 0x008e0fef, 0x0fbd01c6,
773	0x00740ff3, 0x0fc301d6, 0x005d0ff6, 0x0fc801e5,
774	0x00450ffa, 0x0fd001f1, 0x00300ffc, 0x0fda01fa,
775	0x001c0000, 0x0fe40200, 0x000c0000, 0x0ff20202,
776	0x02000000, 0x00000000, 0x02030ff7, 0x00000006,
777	0x02020fee, 0x00000010, 0x02000fe7, 0x0ffe001b,
778	0x01fe0fdf, 0x0ffc0027, 0x01f70fda, 0x0ffa0035,
779	0x01f00fd5, 0x0ff70044, 0x01e70fd0, 0x0ff40055,
780	0x01dd0fcd, 0x0fef0067, 0x01d00fcb, 0x0fec0079,
781	0x01bf0fcb, 0x0fe8008e, 0x01af0fca, 0x0fe500a2,
782	0x019f0fc9, 0x0fe000b8, 0x018c0fca, 0x0fdb00cf,
783	0x01770fcc, 0x0fd800e5, 0x01620fce, 0x0fd400fc,
784	0x014d0fcf, 0x0fcf0115, 0x01350fd3, 0x0fcd012b,
785	0x011d0fd6, 0x0fca0143, 0x01050fd9, 0x0fc8015a,
786	0x00ec0fde, 0x0fc60170, 0x00d30fe2, 0x0fc60185,
787	0x00bb0fe5, 0x0fc5019b, 0x00a30fea, 0x0fc501ae,
788	0x008c0fed, 0x0fc601c1, 0x00740ff2, 0x0fc901d1,
789	0x005e0ff5, 0x0fce01df, 0x004b0ff8, 0x0fd301ea,
790	0x00370ffc, 0x0fda01f3, 0x00260ffd, 0x0fe201fb,
791	0x00170000, 0x0fea01ff, 0x00090000, 0x0ff50202,
792	0x02000000, 0x00000000, 0x02010ff7, 0x00000008,
793	0x01ff0fee, 0x00000013, 0x01fb0fe7, 0x0ffe0020,
794	0x01f60fe0, 0x0ffc002e, 0x01ed0fda, 0x0ffa003f,
795	0x01e40fd6, 0x0ff7004f, 0x01d80fd2, 0x0ff40062,
796	0x01ca0fcf, 0x0ff00077, 0x01bb0fcd, 0x0fed008b,
797	0x01a90fcd, 0x0fe900a1, 0x01960fcd, 0x0fe600b7,
798	0x01830fcd, 0x0fe200ce, 0x016d0fcf, 0x0fde00e6,
799	0x01580fd0, 0x0fdb00fd, 0x01410fd3, 0x0fd80114,
800	0x012c0fd4, 0x0fd4012c, 0x01140fd8, 0x0fd30141,
801	0x00fd0fdb, 0x0fd00158, 0x00e60fde, 0x0fcf016d,
802	0x00ce0fe2, 0x0fcd0183, 0x00b70fe6, 0x0fcd0196,
803	0x00a10fe9, 0x0fcd01a9, 0x008b0fed, 0x0fcd01bb,
804	0x00770ff0, 0x0fcf01ca, 0x00620ff4, 0x0fd201d8,
805	0x004f0ff7, 0x0fd601e4, 0x003f0ffa, 0x0fda01ed,
806	0x002e0ffc, 0x0fe001f6, 0x00200ffe, 0x0fe701fb,
807	0x00130000, 0x0fee01ff, 0x00080000, 0x0ff70201,
808	0x02000000, 0x00000000, 0x01ff0ff7, 0x0000000a,
809	0x01f90fee, 0x00000019, 0x01f10fe7, 0x0ffe002a,
810	0x01e60fe1, 0x0ffd003c, 0x01d90fdc, 0x0ffa0051,
811	0x01cc0fd8, 0x0ff70065, 0x01bb0fd5, 0x0ff5007b,
812	0x01a80fd3, 0x0ff10094, 0x01950fd2, 0x0fef00aa,
813	0x01800fd2, 0x0feb00c3, 0x016a0fd3, 0x0fe900da,
814	0x01540fd3, 0x0fe600f3, 0x013f0fd5, 0x0fe2010a,
815	0x01280fd7, 0x0fe00121, 0x01100fda, 0x0fde0138,
816	0x00fb0fdb, 0x0fdb014f, 0x00e40fdf, 0x0fdb0162,
817	0x00ce0fe2, 0x0fd90177, 0x00b90fe4, 0x0fd8018b,
818	0x00a50fe8, 0x0fd8019b, 0x00910fec, 0x0fd801ab,
819	0x007e0fee, 0x0fd801bc, 0x006c0ff2, 0x0fd901c9,
820	0x005c0ff4, 0x0fda01d6, 0x004b0ff7, 0x0fdd01e1,
821	0x003c0ff9, 0x0fe001eb, 0x002f0ffb, 0x0fe401f2,
822	0x00230ffd, 0x0fe801f8, 0x00180ffe, 0x0fed01fd,
823	0x000e0000, 0x0ff20200, 0x00060000, 0x0ff90201,
824	0x02000000, 0x00000000, 0x02030ff9, 0x00000004,
825	0x02050ff2, 0x00000009, 0x02050fed, 0x0ffe0010,
826	0x02040fe7, 0x0ffd0018, 0x02020fe3, 0x0ffb0020,
827	0x01fe0fdf, 0x0ff9002a, 0x01fa0fdb, 0x0ff70034,
828	0x01f40fd8, 0x0ff30041, 0x01ed0fd6, 0x0ff0004d,
829	0x01e30fd5, 0x0fec005c, 0x01d80fd4, 0x0fea006a,
830	0x01cd0fd3, 0x0fe5007b, 0x01c00fd3, 0x0fe1008c,
831	0x01b10fd3, 0x0fdd009f, 0x01a10fd4, 0x0fd900b2,
832	0x01900fd4, 0x0fd400c8, 0x017b0fd7, 0x0fd100dd,
833	0x01660fd9, 0x0fcd00f4, 0x01500fda, 0x0fca010c,
834	0x01380fde, 0x0fc60124, 0x011e0fe2, 0x0fc5013b,
835	0x01040fe4, 0x0fc30155, 0x00e70fe8, 0x0fc10170,
836	0x00cc0feb, 0x0fc10188, 0x00ad0ff0, 0x0fc301a0,
837	0x00900ff4, 0x0fc701b5, 0x00750ff7, 0x0fcc01c8,
838	0x00580ffb, 0x0fd201db, 0x003e0ffd, 0x0fdb01ea,
839	0x00250000, 0x0fe501f6, 0x000f0000, 0x0ff301fe,
840	0x02000000, 0x00000000, 0x02020ff9, 0x00000005,
841	0x02020ff2, 0x0000000c, 0x02010fed, 0x0ffe0014,
842	0x01fe0fe8, 0x0ffd001d, 0x01fa0fe3, 0x0ffb0028,
843	0x01f40fe0, 0x0ff90033, 0x01ed0fdc, 0x0ff70040,
844	0x01e50fd9, 0x0ff3004f, 0x01db0fd7, 0x0ff1005d,
845	0x01ce0fd7, 0x0fed006e, 0x01c00fd6, 0x0feb007f,
846	0x01b30fd5, 0x0fe70091, 0x01a30fd6, 0x0fe300a4,
847	0x01920fd6, 0x0fe000b8, 0x017e0fd8, 0x0fdd00cd,
848	0x016c0fd8, 0x0fd800e4, 0x01560fdb, 0x0fd600f9,
849	0x01400fdd, 0x0fd20111, 0x01290fdf, 0x0fd00128,
850	0x01110fe2, 0x0fce013f, 0x00f80fe6, 0x0fcd0155,
851	0x00de0fe8, 0x0fcc016e, 0x00c40fec, 0x0fcb0185,
852	0x00ab0fef, 0x0fcb019b, 0x00900ff3, 0x0fcd01b0,
853	0x00770ff6, 0x0fd101c2, 0x005f0ff9, 0x0fd501d3,
854	0x00470ffc, 0x0fdb01e2, 0x00320ffd, 0x0fe201ef,
855	0x001e0000, 0x0fea01f8, 0x000c0000, 0x0ff501ff,
856	0x02000000, 0x00000000, 0x02010ff9, 0x00000006,
857	0x02000ff2, 0x0000000e, 0x01fd0fed, 0x0ffe0018,
858	0x01f80fe8, 0x0ffd0023, 0x01f20fe4, 0x0ffb002f,
859	0x01eb0fe0, 0x0ff9003c, 0x01e10fdd, 0x0ff7004b,
860	0x01d60fda, 0x0ff4005c, 0x01c90fd9, 0x0ff2006c,
861	0x01bc0fd8, 0x0fee007e, 0x01ab0fd8, 0x0fec0091,
862	0x019b0fd8, 0x0fe800a5, 0x018b0fd8, 0x0fe400b9,
863	0x01770fd9, 0x0fe200ce, 0x01620fdb, 0x0fdf00e4,
864	0x014f0fdb, 0x0fdb00fb, 0x01380fde, 0x0fda0110,
865	0x01210fe0, 0x0fd70128, 0x010a0fe2, 0x0fd5013f,
866	0x00f30fe6, 0x0fd30154, 0x00da0fe9, 0x0fd3016a,
867	0x00c30feb, 0x0fd20180, 0x00aa0fef, 0x0fd20195,
868	0x00940ff1, 0x0fd301a8, 0x007b0ff5, 0x0fd501bb,
869	0x00650ff7, 0x0fd801cc, 0x00510ffa, 0x0fdc01d9,
870	0x003c0ffd, 0x0fe101e6, 0x002a0ffe, 0x0fe701f1,
871	0x00190000, 0x0fee01f9, 0x000a0000, 0x0ff701ff,
872	0x02000000, 0x00000000, 0x01ff0ff9, 0x00000008,
873	0x01fb0ff2, 0x00000013, 0x01f50fed, 0x0ffe0020,
874	0x01ed0fe8, 0x0ffd002e, 0x01e30fe4, 0x0ffb003e,
875	0x01d80fe1, 0x0ff9004e, 0x01cb0fde, 0x0ff70060,
876	0x01bc0fdc, 0x0ff40074, 0x01ac0fdb, 0x0ff20087,
877	0x019a0fdb, 0x0fef009c, 0x01870fdb, 0x0fed00b1,
878	0x01740fdb, 0x0fea00c7, 0x01600fdc, 0x0fe700dd,
879	0x014b0fdd, 0x0fe500f3, 0x01350fdf, 0x0fe30109,
880	0x01200fe0, 0x0fe00120, 0x01090fe3, 0x0fdf0135,
881	0x00f30fe5, 0x0fdd014b, 0x00dd0fe7, 0x0fdc0160,
882	0x00c70fea, 0x0fdb0174, 0x00b10fed, 0x0fdb0187,
883	0x009c0fef, 0x0fdb019a, 0x00870ff2, 0x0fdb01ac,
884	0x00740ff4, 0x0fdc01bc, 0x00600ff7, 0x0fde01cb,
885	0x004e0ff9, 0x0fe101d8, 0x003e0ffb, 0x0fe401e3,
886	0x002e0ffd, 0x0fe801ed, 0x00200ffe, 0x0fed01f5,
887	0x00130000, 0x0ff201fb, 0x00080000, 0x0ff901ff
888};
889
890
891#define MDP4_QSEED_TABLE0_OFF 0x8100
892#define MDP4_QSEED_TABLE1_OFF 0x8200
893#define MDP4_QSEED_TABLE2_OFF 0x9000
894
895void mdp4_vg_qseed_init(int vp_num)
896{
897	uint32 *off;
898	int i, voff;
899
900	voff = MDP4_VIDEO_OFF * vp_num;
901	off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
902						MDP4_QSEED_TABLE0_OFF);
903	for (i = 0; i < (sizeof(vg_qseed_table0) / sizeof(uint32)); i++) {
904		outpdw(off, vg_qseed_table0[i]);
905		off++;
906	}
907
908	off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
909						MDP4_QSEED_TABLE1_OFF);
910	for (i = 0; i < (sizeof(vg_qseed_table1) / sizeof(uint32)); i++) {
911		outpdw(off, vg_qseed_table1[i]);
912		off++;
913	}
914
915	off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
916						MDP4_QSEED_TABLE2_OFF);
917	for (i = 0; i < (sizeof(vg_qseed_table2) / sizeof(uint32)); i++) {
918		outpdw(off, vg_qseed_table2[i]);
919		off++;
920	}
921
922}
923
924void mdp4_mixer_blend_init(mixer_num)
925{
926	unsigned char *overlay_base;
927	int off;
928
929	if (mixer_num) 	/* mixer number, /dev/fb0, /dev/fb1 */
930		overlay_base = MDP_BASE + MDP4_OVERLAYPROC1_BASE;/* 0x18000 */
931	else
932		overlay_base = MDP_BASE + MDP4_OVERLAYPROC0_BASE;/* 0x10000 */
933
934	/* stage 0 to stage 2 */
935	off = 0;
936	outpdw(overlay_base + off + 0x104, 0x010);
937	outpdw(overlay_base + off + 0x108, 0xff);/* FG */
938	outpdw(overlay_base + off + 0x10c, 0x00);/* BG */
939
940	off += 0x20;
941	outpdw(overlay_base + off + 0x104, 0x010);
942	outpdw(overlay_base + off + 0x108, 0xff);/* FG */
943	outpdw(overlay_base + off + 0x10c, 0x00);/* BG */
944
945	off += 0x20;
946	outpdw(overlay_base + off + 0x104, 0x010);
947	outpdw(overlay_base + off + 0x108, 0xff);/* FG */
948	outpdw(overlay_base + off + 0x10c, 0x00);/* BG */
949}
950
951
952static uint32 csc_matrix_tab[9] = {
953	0x0254, 0x0000, 0x0331,
954	0x0254, 0xff37, 0xfe60,
955	0x0254, 0x0409, 0x0000
956};
957
958static uint32 csc_pre_bv_tab[3] = {0xfff0, 0xff80, 0xff80 };
959static uint32 csc_post_bv_tab[3] = {0, 0, 0 };
960
961static  uint32 csc_pre_lv_tab[6] =  {0, 0xff, 0, 0xff, 0, 0xff };
962static  uint32 csc_post_lv_tab[6] = {0, 0xff, 0, 0xff, 0, 0xff };
963
964#define MDP4_CSC_MV_OFF 	0x4400
965#define MDP4_CSC_PRE_BV_OFF 	0x4500
966#define MDP4_CSC_POST_BV_OFF 	0x4580
967#define MDP4_CSC_PRE_LV_OFF 	0x4600
968#define MDP4_CSC_POST_LV_OFF 	0x4680
969
970void mdp4_vg_csc_mv_setup(int vp_num)
971{
972	uint32 *off;
973	int i, voff;
974
975	voff = MDP4_VIDEO_OFF * vp_num;
976	off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
977					MDP4_CSC_MV_OFF);
978	for (i = 0; i < 9; i++) {
979		outpdw(off, csc_matrix_tab[i]);
980		off++;
981	}
982}
983
984void mdp4_vg_csc_pre_bv_setup(int vp_num)
985{
986	uint32 *off;
987	int i, voff;
988
989	voff = MDP4_VIDEO_OFF * vp_num;
990	off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
991					MDP4_CSC_PRE_BV_OFF);
992	for (i = 0; i < 3; i++) {
993		outpdw(off, csc_pre_bv_tab[i]);
994		off++;
995	}
996}
997
998void mdp4_vg_csc_post_bv_setup(int vp_num)
999{
1000	uint32 *off;
1001	int i, voff;
1002
1003	voff = MDP4_VIDEO_OFF * vp_num;
1004	off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
1005					MDP4_CSC_POST_BV_OFF);
1006	for (i = 0; i < 3; i++) {
1007		outpdw(off, csc_post_bv_tab[i]);
1008		off++;
1009	}
1010}
1011
1012void mdp4_vg_csc_pre_lv_setup(int vp_num)
1013{
1014	uint32 *off;
1015	int i, voff;
1016
1017	voff = MDP4_VIDEO_OFF * vp_num;
1018	off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
1019					MDP4_CSC_PRE_LV_OFF);
1020
1021	for (i = 0; i < 6; i++) {
1022		outpdw(off, csc_pre_lv_tab[i]);
1023		off++;
1024	}
1025}
1026
1027void mdp4_vg_csc_post_lv_setup(int vp_num)
1028{
1029	uint32 *off;
1030	int i, voff;
1031
1032	voff = MDP4_VIDEO_OFF * vp_num;
1033	off = (uint32 *)(MDP_BASE + MDP4_VIDEO_BASE + voff +
1034					MDP4_CSC_POST_LV_OFF);
1035
1036	for (i = 0; i < 6; i++) {
1037		outpdw(off, csc_post_lv_tab[i]);
1038		off++;
1039	}
1040}
1041
1042char gc_lut[] = {
1043	0x0, 0x1, 0x2, 0x2, 0x3, 0x4, 0x5, 0x6,
1044	0x6, 0x7, 0x8, 0x9, 0xA, 0xA, 0xB, 0xC,
1045	0xD, 0xD, 0xE, 0xF, 0xF, 0x10, 0x10, 0x11,
1046	0x12, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x15,
1047	0x16, 0x16, 0x17, 0x17, 0x17, 0x18, 0x18, 0x19,
1048	0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1C,
1049	0x1C, 0x1D, 0x1D, 0x1D, 0x1E, 0x1E, 0x1E, 0x1F,
1050	0x1F, 0x1F, 0x20, 0x20, 0x20, 0x21, 0x21, 0x21,
1051	0x22, 0x22, 0x22, 0x22, 0x23, 0x23, 0x23, 0x24,
1052	0x24, 0x24, 0x25, 0x25, 0x25, 0x25, 0x26, 0x26,
1053	0x26, 0x26, 0x27, 0x27, 0x27, 0x28, 0x28, 0x28,
1054	0x28, 0x29, 0x29, 0x29, 0x29, 0x2A, 0x2A, 0x2A,
1055	0x2A, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2C, 0x2C,
1056	0x2C, 0x2C, 0x2D, 0x2D, 0x2D, 0x2D, 0x2E, 0x2E,
1057	0x2E, 0x2E, 0x2E, 0x2F, 0x2F, 0x2F, 0x2F, 0x30,
1058	0x30, 0x30, 0x30, 0x30, 0x31, 0x31, 0x31, 0x31,
1059	0x31, 0x32, 0x32, 0x32, 0x32, 0x32, 0x33, 0x33,
1060	0x33, 0x33, 0x33, 0x34, 0x34, 0x34, 0x34, 0x34,
1061	0x35, 0x35, 0x35, 0x35, 0x35, 0x36, 0x36, 0x36,
1062	0x36, 0x36, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
1063	0x38, 0x38, 0x38, 0x38, 0x38, 0x39, 0x39, 0x39,
1064	0x39, 0x39, 0x39, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A,
1065	0x3A, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3C,
1066	0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3D, 0x3D, 0x3D,
1067	0x3D, 0x3D, 0x3D, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E,
1068	0x3E, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x40,
1069	0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x41,
1070	0x41, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x42,
1071	0x42, 0x42, 0x42, 0x43, 0x43, 0x43, 0x43, 0x43,
1072	0x43, 0x43, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
1073	0x44, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
1074	0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x47,
1075	0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x48, 0x48,
1076	0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x49, 0x49,
1077	0x49, 0x49, 0x49, 0x49, 0x49, 0x4A, 0x4A, 0x4A,
1078	0x4A, 0x4A, 0x4A, 0x4A, 0x4A, 0x4B, 0x4B, 0x4B,
1079	0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4C, 0x4C, 0x4C,
1080	0x4C, 0x4C, 0x4C, 0x4C, 0x4D, 0x4D, 0x4D, 0x4D,
1081	0x4D, 0x4D, 0x4D, 0x4D, 0x4E, 0x4E, 0x4E, 0x4E,
1082	0x4E, 0x4E, 0x4E, 0x4E, 0x4E, 0x4F, 0x4F, 0x4F,
1083	0x4F, 0x4F, 0x4F, 0x4F, 0x4F, 0x50, 0x50, 0x50,
1084	0x50, 0x50, 0x50, 0x50, 0x50, 0x51, 0x51, 0x51,
1085	0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x52, 0x52,
1086	0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x53, 0x53,
1087	0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x54,
1088	0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54,
1089	0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
1090	0x55, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
1091	0x56, 0x56, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57,
1092	0x57, 0x57, 0x57, 0x58, 0x58, 0x58, 0x58, 0x58,
1093	0x58, 0x58, 0x58, 0x58, 0x58, 0x59, 0x59, 0x59,
1094	0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x5A, 0x5A,
1095	0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1096	0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B,
1097	0x5B, 0x5B, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C,
1098	0x5C, 0x5C, 0x5C, 0x5C, 0x5D, 0x5D, 0x5D, 0x5D,
1099	0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5E, 0x5E,
1100	0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E,
1101	0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F,
1102	0x5F, 0x5F, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
1103	0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x61, 0x61,
1104	0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x62,
1105	0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62,
1106	0x62, 0x62, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
1107	0x63, 0x63, 0x63, 0x63, 0x63, 0x64, 0x64, 0x64,
1108	0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64,
1109	0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65,
1110	0x65, 0x65, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66,
1111	0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x67,
1112	0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,
1113	0x67, 0x67, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68,
1114	0x68, 0x68, 0x68, 0x68, 0x68, 0x69, 0x69, 0x69,
1115	0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1116	0x69, 0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6A,
1117	0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6B, 0x6B, 0x6B,
1118	0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B,
1119	0x6B, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
1120	0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6D, 0x6D, 0x6D,
1121	0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D,
1122	0x6D, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
1123	0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6F, 0x6F, 0x6F,
1124	0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F,
1125	0x6F, 0x6F, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
1126	0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x71, 0x71,
1127	0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71,
1128	0x71, 0x71, 0x71, 0x72, 0x72, 0x72, 0x72, 0x72,
1129	0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72,
1130	0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73,
1131	0x73, 0x73, 0x73, 0x73, 0x73, 0x74, 0x74, 0x74,
1132	0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74,
1133	0x74, 0x74, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
1134	0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75,
1135	0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76,
1136	0x76, 0x76, 0x76, 0x76, 0x76, 0x77, 0x77, 0x77,
1137	0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
1138	0x77, 0x77, 0x77, 0x78, 0x78, 0x78, 0x78, 0x78,
1139	0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
1140	0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
1141	0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x7A, 0x7A,
1142	0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A,
1143	0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7B, 0x7B, 0x7B,
1144	0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B,
1145	0x7B, 0x7B, 0x7B, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C,
1146	0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C,
1147	0x7C, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
1148	0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
1149	0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E,
1150	0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F,
1151	0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
1152	0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x80, 0x80, 0x80,
1153	0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
1154	0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81,
1155	0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
1156	0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82,
1157	0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
1158	0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
1159	0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
1160	0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
1161	0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
1162	0x84, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
1163	0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
1164	0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
1165	0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
1166	0x86, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
1167	0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
1168	0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
1169	0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
1170	0x88, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
1171	0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
1172	0x89, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
1173	0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
1174	0x8A, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
1175	0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
1176	0x8B, 0x8B, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
1177	0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
1178	0x8C, 0x8C, 0x8C, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
1179	0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
1180	0x8D, 0x8D, 0x8D, 0x8D, 0x8E, 0x8E, 0x8E, 0x8E,
1181	0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
1182	0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8F, 0x8F, 0x8F,
1183	0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
1184	0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x90, 0x90,
1185	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
1186	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x91,
1187	0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
1188	0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
1189	0x91, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
1190	0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
1191	0x92, 0x92, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
1192	0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
1193	0x93, 0x93, 0x93, 0x93, 0x94, 0x94, 0x94, 0x94,
1194	0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
1195	0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x95, 0x95,
1196	0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
1197	0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
1198	0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
1199	0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
1200	0x96, 0x96, 0x96, 0x97, 0x97, 0x97, 0x97, 0x97,
1201	0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
1202	0x97, 0x97, 0x97, 0x97, 0x97, 0x98, 0x98, 0x98,
1203	0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
1204	0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
1205	0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
1206	0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
1207	0x99, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
1208	0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
1209	0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9B, 0x9B, 0x9B,
1210	0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
1211	0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
1212	0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
1213	0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
1214	0x9C, 0x9C, 0x9C, 0x9C, 0x9D, 0x9D, 0x9D, 0x9D,
1215	0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
1216	0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9E,
1217	0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
1218	0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
1219	0x9E, 0x9E, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
1220	0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
1221	0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0xA0, 0xA0,
1222	0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
1223	0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
1224	0xA0, 0xA0, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
1225	0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
1226	0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA2, 0xA2,
1227	0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
1228	0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
1229	0xA2, 0xA2, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
1230	0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
1231	0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA4, 0xA4,
1232	0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
1233	0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
1234	0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
1235	0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
1236	0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
1237	0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
1238	0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
1239	0xA6, 0xA6, 0xA6, 0xA6, 0xA7, 0xA7, 0xA7, 0xA7,
1240	0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
1241	0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
1242	0xA7, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
1243	0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
1244	0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA9,
1245	0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
1246	0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
1247	0xA9, 0xA9, 0xA9, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA,
1248	0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1249	0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1250	0xAA, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
1251	0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
1252	0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAC,
1253	0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
1254	0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
1255	0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAD, 0xAD, 0xAD,
1256	0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
1257	0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
1258	0xAD, 0xAD, 0xAD, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
1259	0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
1260	0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
1261	0xAE, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
1262	0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
1263	0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xB0,
1264	0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
1265	0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
1266	0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB1, 0xB1,
1267	0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
1268	0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
1269	0xB1, 0xB1, 0xB1, 0xB1, 0xB2, 0xB2, 0xB2, 0xB2,
1270	0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
1271	0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
1272	0xB2, 0xB2, 0xB2, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
1273	0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
1274	0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
1275	0xB3, 0xB3, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
1276	0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
1277	0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
1278	0xB4, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
1279	0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
1280	0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
1281	0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
1282	0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
1283	0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
1284	0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
1285	0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
1286	0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB8,
1287	0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
1288	0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
1289	0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB9,
1290	0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
1291	0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
1292	0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xBA,
1293	0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
1294	0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
1295	0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBB,
1296	0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
1297	0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
1298	0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
1299	0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
1300	0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
1301	0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
1302	0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
1303	0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
1304	0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
1305	0xBD, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
1306	0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
1307	0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
1308	0xBE, 0xBE, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
1309	0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
1310	0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
1311	0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
1312	0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
1313	0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
1314	0xC0, 0xC0, 0xC0, 0xC0, 0xC1, 0xC1, 0xC1, 0xC1,
1315	0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1,
1316	0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1,
1317	0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC2, 0xC2, 0xC2,
1318	0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2,
1319	0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2,
1320	0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC3, 0xC3,
1321	0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
1322	0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
1323	0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
1324	0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4,
1325	0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4,
1326	0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4,
1327	0xC4, 0xC4, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5,
1328	0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5,
1329	0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5,
1330	0xC5, 0xC5, 0xC5, 0xC5, 0xC6, 0xC6, 0xC6, 0xC6,
1331	0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
1332	0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
1333	0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC7, 0xC7,
1334	0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
1335	0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
1336	0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
1337	0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8,
1338	0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8,
1339	0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8,
1340	0xC8, 0xC8, 0xC8, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9,
1341	0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9,
1342	0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9,
1343	0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xCA, 0xCA,
1344	0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
1345	0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
1346	0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
1347	0xCA, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
1348	0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
1349	0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
1350	0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC,
1351	0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
1352	0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
1353	0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCD,
1354	0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
1355	0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
1356	0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
1357	0xCD, 0xCD, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE,
1358	0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE,
1359	0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE,
1360	0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCF, 0xCF,
1361	0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF,
1362	0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF,
1363	0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF,
1364	0xCF, 0xCF, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0,
1365	0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0,
1366	0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0,
1367	0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD1, 0xD1, 0xD1,
1368	0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1,
1369	0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1,
1370	0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1,
1371	0xD1, 0xD1, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
1372	0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
1373	0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
1374	0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD3, 0xD3,
1375	0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3,
1376	0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3,
1377	0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3,
1378	0xD3, 0xD3, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4,
1379	0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4,
1380	0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4,
1381	0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD5,
1382	0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
1383	0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
1384	0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
1385	0xD5, 0xD5, 0xD5, 0xD5, 0xD6, 0xD6, 0xD6, 0xD6,
1386	0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6,
1387	0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6,
1388	0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6,
1389	0xD6, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
1390	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
1391	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
1392	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD8,
1393	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
1394	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
1395	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
1396	0xD8, 0xD8, 0xD8, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9,
1397	0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9,
1398	0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9,
1399	0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9,
1400	0xD9, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA,
1401	0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA,
1402	0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA,
1403	0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDB, 0xDB,
1404	0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
1405	0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
1406	0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
1407	0xDB, 0xDB, 0xDB, 0xDB, 0xDC, 0xDC, 0xDC, 0xDC,
1408	0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
1409	0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
1410	0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
1411	0xDC, 0xDC, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1412	0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1413	0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1414	0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1415	0xDD, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
1416	0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
1417	0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
1418	0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDF,
1419	0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
1420	0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
1421	0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
1422	0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xE0, 0xE0,
1423	0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
1424	0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
1425	0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
1426	0xE0, 0xE0, 0xE0, 0xE0, 0xE1, 0xE1, 0xE1, 0xE1,
1427	0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1,
1428	0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1,
1429	0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1,
1430	0xE1, 0xE1, 0xE1, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2,
1431	0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2,
1432	0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2,
1433	0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2,
1434	0xE2, 0xE2, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
1435	0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
1436	0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
1437	0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
1438	0xE3, 0xE3, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
1439	0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
1440	0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
1441	0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
1442	0xE4, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
1443	0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
1444	0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
1445	0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
1446	0xE5, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
1447	0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
1448	0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
1449	0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
1450	0xE6, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
1451	0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
1452	0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
1453	0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
1454	0xE7, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
1455	0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
1456	0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
1457	0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
1458	0xE8, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
1459	0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
1460	0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
1461	0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
1462	0xE9, 0xE9, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA,
1463	0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA,
1464	0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA,
1465	0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA,
1466	0xEA, 0xEA, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB,
1467	0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB,
1468	0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB,
1469	0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB,
1470	0xEB, 0xEB, 0xEB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
1471	0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
1472	0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
1473	0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC,
1474	0xEC, 0xEC, 0xEC, 0xEC, 0xED, 0xED, 0xED, 0xED,
1475	0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED,
1476	0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED,
1477	0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED,
1478	0xED, 0xED, 0xED, 0xED, 0xED, 0xEE, 0xEE, 0xEE,
1479	0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
1480	0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
1481	0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
1482	0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xEF,
1483	0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
1484	0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
1485	0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
1486	0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
1487	0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
1488	0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
1489	0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
1490	0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
1491	0xF0, 0xF0, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
1492	0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
1493	0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
1494	0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
1495	0xF1, 0xF1, 0xF1, 0xF1, 0xF2, 0xF2, 0xF2, 0xF2,
1496	0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
1497	0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
1498	0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
1499	0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF3, 0xF3,
1500	0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
1501	0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
1502	0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
1503	0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
1504	0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
1505	0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
1506	0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
1507	0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
1508	0xF4, 0xF4, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
1509	0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
1510	0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
1511	0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
1512	0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF6, 0xF6, 0xF6,
1513	0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
1514	0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
1515	0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
1516	0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
1517	0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
1518	0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
1519	0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
1520	0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
1521	0xF7, 0xF7, 0xF7, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1522	0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1523	0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1524	0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1525	0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF9, 0xF9,
1526	0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
1527	0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
1528	0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
1529	0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
1530	0xF9, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
1531	0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
1532	0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
1533	0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
1534	0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFB, 0xFB, 0xFB,
1535	0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
1536	0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
1537	0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
1538	0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
1539	0xFB, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
1540	0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
1541	0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
1542	0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
1543	0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFD, 0xFD, 0xFD,
1544	0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
1545	0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
1546	0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
1547	0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
1548	0xFD, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
1549	0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
1550	0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
1551	0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
1552	0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
1553	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1554	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1555};
1556
1557void mdp4_mixer_gc_lut_setup(int mixer_num)
1558{
1559	unsigned char *base;
1560	uint32 data;
1561	char val;
1562	int i, off;
1563
1564	if (mixer_num) 	/* mixer number, /dev/fb0, /dev/fb1 */
1565		base = MDP_BASE + MDP4_OVERLAYPROC1_BASE;/* 0x18000 */
1566	else
1567		base = MDP_BASE + MDP4_OVERLAYPROC0_BASE;/* 0x10000 */
1568
1569	base += 0x4000;	/* GC_LUT offset */
1570
1571	off = 0;
1572	for (i = 0; i < 4096; i++) {
1573		val = gc_lut[i];
1574		data = (val << 16 | val << 8 | val); /* R, B, and G are same */
1575		outpdw(base + off, data);
1576		off += 4;
1577	}
1578}
1579
1580uint32 igc_video_lut[] = {	 /* non linear */
1581	0x0, 0x1, 0x2, 0x4, 0x5, 0x6, 0x7, 0x9,
1582	0xA, 0xB, 0xC, 0xE, 0xF, 0x10, 0x12, 0x14,
1583	0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F, 0x21, 0x23,
1584	0x25, 0x28, 0x2A, 0x2D, 0x30, 0x32, 0x35, 0x38,
1585	0x3B, 0x3E, 0x42, 0x45, 0x48, 0x4C, 0x4F, 0x53,
1586	0x57, 0x5B, 0x5F, 0x63, 0x67, 0x6B, 0x70, 0x74,
1587	0x79, 0x7E, 0x83, 0x88, 0x8D, 0x92, 0x97, 0x9C,
1588	0xA2, 0xA8, 0xAD, 0xB3, 0xB9, 0xBF, 0xC5, 0xCC,
1589	0xD2, 0xD8, 0xDF, 0xE6, 0xED, 0xF4, 0xFB, 0x102,
1590	0x109, 0x111, 0x118, 0x120, 0x128, 0x130, 0x138, 0x140,
1591	0x149, 0x151, 0x15A, 0x162, 0x16B, 0x174, 0x17D, 0x186,
1592	0x190, 0x199, 0x1A3, 0x1AC, 0x1B6, 0x1C0, 0x1CA, 0x1D5,
1593	0x1DF, 0x1EA, 0x1F4, 0x1FF, 0x20A, 0x215, 0x220, 0x22B,
1594	0x237, 0x242, 0x24E, 0x25A, 0x266, 0x272, 0x27F, 0x28B,
1595	0x298, 0x2A4, 0x2B1, 0x2BE, 0x2CB, 0x2D8, 0x2E6, 0x2F3,
1596	0x301, 0x30F, 0x31D, 0x32B, 0x339, 0x348, 0x356, 0x365,
1597	0x374, 0x383, 0x392, 0x3A1, 0x3B1, 0x3C0, 0x3D0, 0x3E0,
1598	0x3F0, 0x400, 0x411, 0x421, 0x432, 0x443, 0x454, 0x465,
1599	0x476, 0x487, 0x499, 0x4AB, 0x4BD, 0x4CF, 0x4E1, 0x4F3,
1600	0x506, 0x518, 0x52B, 0x53E, 0x551, 0x565, 0x578, 0x58C,
1601	0x5A0, 0x5B3, 0x5C8, 0x5DC, 0x5F0, 0x605, 0x61A, 0x62E,
1602	0x643, 0x659, 0x66E, 0x684, 0x699, 0x6AF, 0x6C5, 0x6DB,
1603	0x6F2, 0x708, 0x71F, 0x736, 0x74D, 0x764, 0x77C, 0x793,
1604	0x7AB, 0x7C3, 0x7DB, 0x7F3, 0x80B, 0x824, 0x83D, 0x855,
1605	0x86F, 0x888, 0x8A1, 0x8BB, 0x8D4, 0x8EE, 0x908, 0x923,
1606	0x93D, 0x958, 0x973, 0x98E, 0x9A9, 0x9C4, 0x9DF, 0x9FB,
1607	0xA17, 0xA33, 0xA4F, 0xA6C, 0xA88, 0xAA5, 0xAC2, 0xADF,
1608	0xAFC, 0xB19, 0xB37, 0xB55, 0xB73, 0xB91, 0xBAF, 0xBCE,
1609	0xBEC, 0xC0B, 0xC2A, 0xC4A, 0xC69, 0xC89, 0xCA8, 0xCC8,
1610	0xCE8, 0xD09, 0xD29, 0xD4A, 0xD6B, 0xD8C, 0xDAD, 0xDCF,
1611	0xDF0, 0xE12, 0xE34, 0xE56, 0xE79, 0xE9B, 0xEBE, 0xEE1,
1612	0xF04, 0xF27, 0xF4B, 0xF6E, 0xF92, 0xFB6, 0xFDB, 0xFFF,
1613};
1614
1615void mdp4_vg_igc_lut_setup(int vp_num)
1616{
1617	unsigned char *base;
1618	int i, voff, off;
1619	uint32 data, val;
1620
1621	voff = MDP4_VIDEO_OFF * vp_num;
1622	base = MDP_BASE + MDP4_VIDEO_BASE + voff + 0x5000;
1623
1624	off = 0;
1625	for (i = 0; i < 256; i++) {
1626		val = igc_video_lut[i];
1627		data = (val << 16 | val);	/* color 0 and 1 */
1628		outpdw(base + off, data);
1629		outpdw(base + off + 0x800, val);	/* color 2 */
1630		off += 4;
1631	}
1632}
1633
1634uint32 igc_rgb_lut[] = {   /* linear */
1635	0x0, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
1636	0x80, 0x91, 0xA1, 0xB1, 0xC1, 0xD1, 0xE1, 0xF1,
1637	0x101, 0x111, 0x121, 0x131, 0x141, 0x151, 0x161, 0x171,
1638	0x181, 0x191, 0x1A2, 0x1B2, 0x1C2, 0x1D2, 0x1E2, 0x1F2,
1639	0x202, 0x212, 0x222, 0x232, 0x242, 0x252, 0x262, 0x272,
1640	0x282, 0x292, 0x2A2, 0x2B3, 0x2C3, 0x2D3, 0x2E3, 0x2F3,
1641	0x303, 0x313, 0x323, 0x333, 0x343, 0x353, 0x363, 0x373,
1642	0x383, 0x393, 0x3A3, 0x3B3, 0x3C4, 0x3D4, 0x3E4, 0x3F4,
1643	0x404, 0x414, 0x424, 0x434, 0x444, 0x454, 0x464, 0x474,
1644	0x484, 0x494, 0x4A4, 0x4B4, 0x4C4, 0x4D5, 0x4E5, 0x4F5,
1645	0x505, 0x515, 0x525, 0x535, 0x545, 0x555, 0x565, 0x575,
1646	0x585, 0x595, 0x5A5, 0x5B5, 0x5C5, 0x5D5, 0x5E6, 0x5F6,
1647	0x606, 0x616, 0x626, 0x636, 0x646, 0x656, 0x666, 0x676,
1648	0x686, 0x696, 0x6A6, 0x6B6, 0x6C6, 0x6D6, 0x6E6, 0x6F7,
1649	0x707, 0x717, 0x727, 0x737, 0x747, 0x757, 0x767, 0x777,
1650	0x787, 0x797, 0x7A7, 0x7B7, 0x7C7, 0x7D7, 0x7E7, 0x7F7,
1651	0x808, 0x818, 0x828, 0x838, 0x848, 0x858, 0x868, 0x878,
1652	0x888, 0x898, 0x8A8, 0x8B8, 0x8C8, 0x8D8, 0x8E8, 0x8F8,
1653	0x908, 0x919, 0x929, 0x939, 0x949, 0x959, 0x969, 0x979,
1654	0x989, 0x999, 0x9A9, 0x9B9, 0x9C9, 0x9D9, 0x9E9, 0x9F9,
1655	0xA09, 0xA19, 0xA2A, 0xA3A, 0xA4A, 0xA5A, 0xA6A, 0xA7A,
1656	0xA8A, 0xA9A, 0xAAA, 0xABA, 0xACA, 0xADA, 0xAEA, 0xAFA,
1657	0xB0A, 0xB1A, 0xB2A, 0xB3B, 0xB4B, 0xB5B, 0xB6B, 0xB7B,
1658	0xB8B, 0xB9B, 0xBAB, 0xBBB, 0xBCB, 0xBDB, 0xBEB, 0xBFB,
1659	0xC0B, 0xC1B, 0xC2B, 0xC3B, 0xC4C, 0xC5C, 0xC6C, 0xC7C,
1660	0xC8C, 0xC9C, 0xCAC, 0xCBC, 0xCCC, 0xCDC, 0xCEC, 0xCFC,
1661	0xD0C, 0xD1C, 0xD2C, 0xD3C, 0xD4C, 0xD5D, 0xD6D, 0xD7D,
1662	0xD8D, 0xD9D, 0xDAD, 0xDBD, 0xDCD, 0xDDD, 0xDED, 0xDFD,
1663	0xE0D, 0xE1D, 0xE2D, 0xE3D, 0xE4D, 0xE5D, 0xE6E, 0xE7E,
1664	0xE8E, 0xE9E, 0xEAE, 0xEBE, 0xECE, 0xEDE, 0xEEE, 0xEFE,
1665	0xF0E, 0xF1E, 0xF2E, 0xF3E, 0xF4E, 0xF5E, 0xF6E, 0xF7F,
1666	0xF8F, 0xF9F, 0xFAF, 0xFBF, 0xFCF, 0xFDF, 0xFEF, 0xFFF,
1667};
1668
1669void mdp4_rgb_igc_lut_setup(int num)
1670{
1671	unsigned char *base;
1672	int i, voff, off;
1673	uint32 data, val;
1674
1675	voff = MDP4_RGB_OFF * num;
1676	base = MDP_BASE + MDP4_RGB_BASE + voff + 0x5000;
1677
1678	off = 0;
1679	for (i = 0; i < 256; i++) {
1680		val = igc_rgb_lut[i];
1681		data = (val << 16 | val);	/* color 0 and 1 */
1682		outpdw(base + off, data);
1683		outpdw(base + off + 0x800, val);	/* color 2 */
1684		off += 4;
1685	}
1686}
1687