block: fix warning with calling smp_processor_id() in preemptible section
[pandora-kernel.git] / drivers / staging / msm / mdp4_util.c
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
40 void 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
50 void 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
69 void 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
101 unsigned long mdp4_display_status(void)
102 {
103         return inpdw(MDP_BASE + 0x0018) & 0x3ff;        /* MDP_DISPLAY_STATUS */
104 }
105
106 void 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
119 void 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
137 int 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
145 void 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
222 void 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
246 static struct mdp_dma_data overlay1_data;
247 static int intr_dma_p;
248 static int intr_dma_s;
249 static int intr_dma_e;
250 static int intr_overlay0;
251 static int intr_overlay1;
252
253 irqreturn_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
367 static uint32 vg_qseed_table0[] = {
368         0x5556aaff, 0x00000000, 0x00000000, 0x00000000
369 };
370
371 static uint32 vg_qseed_table1[] = {
372         0x76543210, 0xfedcba98
373 };
374
375 static 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
895 void 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
924 void 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
952 static uint32 csc_matrix_tab[9] = {
953         0x0254, 0x0000, 0x0331,
954         0x0254, 0xff37, 0xfe60,
955         0x0254, 0x0409, 0x0000
956 };
957
958 static uint32 csc_pre_bv_tab[3] = {0xfff0, 0xff80, 0xff80 };
959 static uint32 csc_post_bv_tab[3] = {0, 0, 0 };
960
961 static  uint32 csc_pre_lv_tab[6] =  {0, 0xff, 0, 0xff, 0, 0xff };
962 static  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
970 void 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
984 void 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
998 void 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
1012 void 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
1027 void 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
1042 char 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
1557 void 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
1580 uint32 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
1615 void 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
1634 uint32 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
1669 void 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 }