blob: c0556b2d4f1064feb2772ee3a6b3cc4b77517aa6 [file] [log] [blame]
/*
* drivers/display/lcd/aml_lcd_tcon.c
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the named License,
* or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#include <common.h>
#include <malloc.h>
#include <asm/arch/io.h>
#include <amlogic/aml_lcd.h>
#include "aml_lcd_reg.h"
#include "aml_lcd_common.h"
static unsigned char tcon_boe_hd_hsd_n56[LCD_TCON_TABLE_MAX] = {
0x40,
0x44,
0x44,
0x44,
0x44,
0x00,
0x00,
0x00,
0x00,
0x44,
0x44,
0x44,
0x40,
0x00,
0x00,
0x00,
0xE4,
0x1B,
0x00,
0x00,
0x0F,
0xC8,
0x00,
0x11,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xC0,
0x6F,
0x00,
0x88,
0x2B,
0x00,
0x10,
0x32,
0x54,
0x76,
0x90,
0x06,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x07,
0x80,
0x03,
0x28,
0x00,
0x00,
0x00,
0x00,
0x40,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x40, /* 0x05c //0x00 --> 0x40 //[6]:od_en */
0x00,
0x04,
0x00,
0x80,
0x0F,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x03,
0x80,
0x08,
0x10,
0x09,
0x20,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xB4,
0x33,
0x00,
0x3B,
0x00,
0x06,
0x01,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xE8,
0x01,
0x5A,
0x00,
0x2A,
0xE8,
0x00,
0x02,
0x00,
0x02,
0x3D,
0xA3,
0xC2,
0x33,
0x82,
0xCA,
0x28,
0xC2,
0x2D,
0x22,
0xB1,
0xFB,
0x1F,
0xA1,
0x56,
0x11,
0x90,
0xBD,
0x02,
0xD0,
0x14,
0x00,
0x20,
0x56,
0x55,
0x6E,
0xFF,
0x3F,
0x00,
0x12,
0xF3,
0xC0,
0x44,
0x04,
0x96,
0xCC,
0x01,
0xFF,
0x0A,
0x0A,
0x0A,
0x0C,
0x69,
0x40,
0x03,
0x26,
0x64,
0x88,
0x4C,
0x00,
0x11,
0xC7,
0x80,
0x32,
0x8E,
0x88,
0x00,
0x0A,
0x00,
0x08,
0x05,
0xDC,
0x03,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x0A,
0x00,
0x00,
0x20, /* 0x113: 0x00 --> 0x20, bit[5] */
0xAB,
0x42,
0x00,
0x00,
0x00,
0x01,
0x0C,
0x01,
0x00,
0x00,
0xC0,
0x03,
0x1E,
0x0C,
0x20,
0x00,
0x88,
0x08,
0x00,
0x64,
0xC8,
0x00,
0x00,
0x0A,
0x20,
0x00,
0xCC,
0x99,
0x33,
0x66,
0x33,
0x55,
0xAA,
0xBB,
0x77,
0x66,
0x33,
0x55,
0xAA,
0xBB,
0x77,
0x66,
0x33,
0x55,
0xAA,
0xBB,
0x77,
0x66,
0x33,
0x55,
0xAA,
0xBB,
0x77,
0x10,
0x88,
0x8F,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x08,
0x10,
0x18,
0x00,
0x00,
0x00,
0x00,
0x00,
0x30,
0xE8,
0xFC,
0x03,
0x21,
0x49,
0xFF,
0xFF,
0xFF,
0x04,
0x20,
0xA0,
0x86,
0x01,
0x03,
0xA0,
0x86,
0x01,
0xD4,
0x38,
0x34,
0xC0,
0x38,
0x74,
0x01,
0xF9,
0xC7,
0x11,
0xC7,
0x73,
0x3C,
0x80,
0xE0,
0xC7,
0x1E,
0x38,
0x6D,
0x60,
0x64,
0xF9,
0xC3,
0x06,
0x18,
0x9C,
0x40,
0x80,
0xE0,
0xC7,
0x1E,
0x38,
0x4A,
0x38,
0x64,
0x2C,
0x07,
0x00,
0x07,
0x0B,
0xB8,
0x80,
0x70,
0x07,
0x00,
0x07,
0x05,
0x14,
0x80,
0x3E,
0xCC,
0xCC,
0xCC,
0xFD,
0xE8,
0x80,
0x20,
0x89,
0x85,
0x22,
0x03,
0xE8,
0x80,
0x04,
0x50,
0xFF,
0x30,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x00,
0x01,
0xF0,
0xFF,
0x02,
0x23,
0x03,
0x44,
0x29,
0x11,
0x10,
0x01,
0x00,
0x01,
0xF0,
0xFF,
0xFA,
0xA0,
0x0F,
0x20,
0x00,
0x00,
0x00,
0x01,
0x00,
0x02,
0xF0,
0xFF,
0xBC,
0xC2,
0x30,
0x40,
0x01,
0x14,
0x40,
0x01,
0x00,
0x02,
0x30,
0x00,
0xBC,
0xC2,
0x2B,
0x40,
0x01,
0x35,
0x40,
0x01,
0x00,
0x03,
0x40,
0x00,
0x79,
0xE2,
0x19,
0x00,
0x00,
0x00,
0x00,
0x01,
0x00,
0x05,
0xF0,
0xFF,
0x79,
0x02,
0x23,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x00,
0x02,
0xF0,
0xFF,
0x79,
0x02,
0x23,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x70,
0x50,
0x31,
0xF0,
0xF0,
0xF4,
0x20,
0x00,
0x10,
0xF0,
0xF0,
0xF0,
0xF0,
0xF0,
0xF0,
0xF0,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x10,
0x02,
0x10,
0x10,
0x10,
0x10,
0x10,
0x10,
0x04,
0xAA,
0x55,
0x00,
0x00,
0x00,
0x60,
0x08,
0x80,
0x00, /* 0x2b1: 0x00 */
0x08, /* 0x2b2: 0x08 */
0x05, /* 0x2b3: 0x00 --> 0x05 */
0x58, /* 0x2b4: 0x08 --> 0x58 */
0x05, /* 0x2b5: 0x05 */
0x58,
0x02,
0x00,
0x20,
0x01,
0x08,
0x00,
0x13,
0x00,
0x0C,
0x0D,
0xB7,
0x03,
0x94,
0x18,
0x00,
0x10,
0xF0,
0x07,
0x80,
0x20,
0x00,
0x06,
0x0B,
0x0B,
0x33,
0x0E,
0x1C,
0x2A,
0x38,
0x46,
0x54,
0x62,
0x69,
0x70,
0x77,
0x79,
0x7B,
0x7D,
0x7E,
0x02,
0x04,
0x00,
0x04,
0x00,
0x0D,
0x3E,
0x0E,
0x3C,
0x1F,
0x3A,
0x1F,
0x38,
0x1F,
0x78,
0x18,
0x78,
0x19,
0x76,
0x1A,
0x76,
0x1B,
0x74,
0x2C,
0x74,
0x2D,
0x74,
0x3D,
0x74,
0x6F,
0x00,
0x08,
0x11,
0x1A,
0x23,
0x2C,
0x2D,
0x3E,
0x10,
0x22,
0x33,
0x44,
0x55,
0x66,
0x87,
0x88,
0x4F,
0xA5, /* 0x30d: 0xa5 */
0xD7, /* 0x30e: 0x09 --> 0xd7 */
0x80, /* 0x30f: 0x60 --> 0x80 */
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x2B,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x20,
0x00,
0x03,
0x40,
0x00,
0x05,
0x60,
0x00,
0x07,
0x80,
0x00,
0x09,
0xA0,
0x00,
0x0B,
0xC0,
0x00,
0x0D,
0xE0,
0x00,
0x0F,
0x00,
0x01,
0x11,
0x20,
0x01,
0x13,
0x40,
0x01,
0x15,
0x60,
0x01,
0x17,
0x80,
0x01,
0x19,
0xA0,
0x01,
0x1B,
0xC0,
0x01,
0x1D,
0xE0,
0x01,
0x1F,
0x00,
0x02,
0x21,
0x20,
0x02,
0x23,
0x40,
0x02,
0x25,
0x60,
0x02,
0x27,
0x80,
0x02,
0x29,
0xA0,
0x02,
0x2B,
0xC0,
0x02,
0x2D,
0xE0,
0x02,
0x2F,
0x00,
0x03,
0x31,
0x20,
0x03,
0x33,
0x40,
0x03,
0x35,
0x60,
0x03,
0x37,
0x80,
0x03,
0x39,
0xA0,
0x03,
0x3B,
0xC0,
0x03,
0x3D,
0xE0,
0x03,
0x3F,
0x00,
0x04,
0x41,
0x20,
0x04,
0x43,
0x40,
0x04,
0x45,
0x60,
0x04,
0x47,
0x80,
0x04,
0x49,
0xA0,
0x04,
0x4B,
0xC0,
0x04,
0x4D,
0xE0,
0x04,
0x4F,
0x00,
0x05,
0x51,
0x20,
0x05,
0x53,
0x40,
0x05,
0x55,
0x60,
0x05,
0x57,
0x80,
0x05,
0x59,
0xA0,
0x05,
0x5B,
0xC0,
0x05,
0x5D,
0xE0,
0x05,
0x5F,
0x00,
0x06,
0x61,
0x20,
0x06,
0x63,
0x40,
0x06,
0x65,
0x60,
0x06,
0x67,
0x80,
0x06,
0x69,
0xA0,
0x06,
0x6B,
0xC0,
0x06,
0x6D,
0xE0,
0x06,
0x6F,
0x00,
0x07,
0x71,
0x20,
0x07,
0x73,
0x40,
0x07,
0x75,
0x60,
0x07,
0x77,
0x80,
0x07,
0x79,
0xA0,
0x07,
0x7B,
0xC0,
0x07,
0x7D,
0xE0,
0x07,
0x7F,
0x00,
0x08,
0x81,
0x20,
0x08,
0x83,
0x40,
0x08,
0x85,
0x60,
0x08,
0x87,
0x80,
0x08,
0x89,
0xA0,
0x08,
0x8B,
0xC0,
0x08,
0x8D,
0xE0,
0x08,
0x8F,
0x00,
0x09,
0x91,
0x20,
0x09,
0x93,
0x40,
0x09,
0x95,
0x60,
0x09,
0x97,
0x80,
0x09,
0x99,
0xA0,
0x09,
0x9B,
0xC0,
0x09,
0x9D,
0xE0,
0x09,
0x9F,
0x00,
0x0A,
0xA1,
0x20,
0x0A,
0xA3,
0x40,
0x0A,
0xA5,
0x60,
0x0A,
0xA7,
0x80,
0x0A,
0xA9,
0xA0,
0x0A,
0xAB,
0xC0,
0x0A,
0xAD,
0xE0,
0x0A,
0xAF,
0x00,
0x0B,
0xB1,
0x20,
0x0B,
0xB3,
0x40,
0x0B,
0xB5,
0x60,
0x0B,
0xB7,
0x80,
0x0B,
0xB9,
0xA0,
0x0B,
0xBB,
0xC0,
0x0B,
0xBD,
0xE0,
0x0B,
0xBF,
0x00,
0x0C,
0xC1,
0x20,
0x0C,
0xC3,
0x40,
0x0C,
0xC5,
0x60,
0x0C,
0xC7,
0x80,
0x0C,
0xC9,
0xA0,
0x0C,
0xCB,
0xC0,
0x0C,
0xCD,
0xE0,
0x0C,
0xCF,
0x00,
0x0D,
0xD1,
0x20,
0x0D,
0xD3,
0x40,
0x0D,
0xD5,
0x60,
0x0D,
0xD7,
0x80,
0x0D,
0xD9,
0xA0,
0x0D,
0xDB,
0xC0,
0x0D,
0xDD,
0xE0,
0x0D,
0xDF,
0x00,
0x0E,
0xE1,
0x20,
0x0E,
0xE3,
0x40,
0x0E,
0xE5,
0x60,
0x0E,
0xE7,
0x80,
0x0E,
0xE9,
0xA0,
0x0E,
0xEB,
0xC0,
0x0E,
0xED,
0xE0,
0x0E,
0xEF,
0x00,
0x0F,
0xF1,
0x20,
0x0F,
0xF3,
0x40,
0x0F,
0xF5,
0x60,
0x0F,
0xF7,
0x80,
0x0F,
0xF9,
0xA0,
0x0F,
0xFB,
0xC0,
0x0F,
0xFD,
0xE0,
0x0F,
0xFF,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x20,
0x00,
0x03,
0x40,
0x00,
0x05,
0x60,
0x00,
0x07,
0x80,
0x00,
0x09,
0xA0,
0x00,
0x0B,
0xC0,
0x00,
0x0D,
0xE0,
0x00,
0x0F,
0x00,
0x01,
0x11,
0x20,
0x01,
0x13,
0x40,
0x01,
0x15,
0x60,
0x01,
0x17,
0x80,
0x01,
0x19,
0xA0,
0x01,
0x1B,
0xC0,
0x01,
0x1D,
0xE0,
0x01,
0x1F,
0x00,
0x02,
0x21,
0x20,
0x02,
0x23,
0x40,
0x02,
0x25,
0x60,
0x02,
0x27,
0x80,
0x02,
0x29,
0xA0,
0x02,
0x2B,
0xC0,
0x02,
0x2D,
0xE0,
0x02,
0x2F,
0x00,
0x03,
0x31,
0x20,
0x03,
0x33,
0x40,
0x03,
0x35,
0x60,
0x03,
0x37,
0x80,
0x03,
0x39,
0xA0,
0x03,
0x3B,
0xC0,
0x03,
0x3D,
0xE0,
0x03,
0x3F,
0x00,
0x04,
0x41,
0x20,
0x04,
0x43,
0x40,
0x04,
0x45,
0x60,
0x04,
0x47,
0x80,
0x04,
0x49,
0xA0,
0x04,
0x4B,
0xC0,
0x04,
0x4D,
0xE0,
0x04,
0x4F,
0x00,
0x05,
0x51,
0x20,
0x05,
0x53,
0x40,
0x05,
0x55,
0x60,
0x05,
0x57,
0x80,
0x05,
0x59,
0xA0,
0x05,
0x5B,
0xC0,
0x05,
0x5D,
0xE0,
0x05,
0x5F,
0x00,
0x06,
0x61,
0x20,
0x06,
0x63,
0x40,
0x06,
0x65,
0x60,
0x06,
0x67,
0x80,
0x06,
0x69,
0xA0,
0x06,
0x6B,
0xC0,
0x06,
0x6D,
0xE0,
0x06,
0x6F,
0x00,
0x07,
0x71,
0x20,
0x07,
0x73,
0x40,
0x07,
0x75,
0x60,
0x07,
0x77,
0x80,
0x07,
0x79,
0xA0,
0x07,
0x7B,
0xC0,
0x07,
0x7D,
0xE0,
0x07,
0x7F,
0x00,
0x08,
0x81,
0x20,
0x08,
0x83,
0x40,
0x08,
0x85,
0x60,
0x08,
0x87,
0x80,
0x08,
0x89,
0xA0,
0x08,
0x8B,
0xC0,
0x08,
0x8D,
0xE0,
0x08,
0x8F,
0x00,
0x09,
0x91,
0x20,
0x09,
0x93,
0x40,
0x09,
0x95,
0x60,
0x09,
0x97,
0x80,
0x09,
0x99,
0xA0,
0x09,
0x9B,
0xC0,
0x09,
0x9D,
0xE0,
0x09,
0x9F,
0x00,
0x0A,
0xA1,
0x20,
0x0A,
0xA3,
0x40,
0x0A,
0xA5,
0x60,
0x0A,
0xA7,
0x80,
0x0A,
0xA9,
0xA0,
0x0A,
0xAB,
0xC0,
0x0A,
0xAD,
0xE0,
0x0A,
0xAF,
0x00,
0x0B,
0xB1,
0x20,
0x0B,
0xB3,
0x40,
0x0B,
0xB5,
0x60,
0x0B,
0xB7,
0x80,
0x0B,
0xB9,
0xA0,
0x0B,
0xBB,
0xC0,
0x0B,
0xBD,
0xE0,
0x0B,
0xBF,
0x00,
0x0C,
0xC1,
0x20,
0x0C,
0xC3,
0x40,
0x0C,
0xC5,
0x60,
0x0C,
0xC7,
0x80,
0x0C,
0xC9,
0xA0,
0x0C,
0xCB,
0xC0,
0x0C,
0xCD,
0xE0,
0x0C,
0xCF,
0x00,
0x0D,
0xD1,
0x20,
0x0D,
0xD3,
0x40,
0x0D,
0xD5,
0x60,
0x0D,
0xD7,
0x80,
0x0D,
0xD9,
0xA0,
0x0D,
0xDB,
0xC0,
0x0D,
0xDD,
0xE0,
0x0D,
0xDF,
0x00,
0x0E,
0xE1,
0x20,
0x0E,
0xE3,
0x40,
0x0E,
0xE5,
0x60,
0x0E,
0xE7,
0x80,
0x0E,
0xE9,
0xA0,
0x0E,
0xEB,
0xC0,
0x0E,
0xED,
0xE0,
0x0E,
0xEF,
0x00,
0x0F,
0xF1,
0x20,
0x0F,
0xF3,
0x40,
0x0F,
0xF5,
0x60,
0x0F,
0xF7,
0x80,
0x0F,
0xF9,
0xA0,
0x0F,
0xFB,
0xC0,
0x0F,
0xFD,
0xE0,
0x0F,
0xFF,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x20,
0x00,
0x03,
0x40,
0x00,
0x05,
0x60,
0x00,
0x07,
0x80,
0x00,
0x09,
0xA0,
0x00,
0x0B,
0xC0,
0x00,
0x0D,
0xE0,
0x00,
0x0F,
0x00,
0x01,
0x11,
0x20,
0x01,
0x13,
0x40,
0x01,
0x15,
0x60,
0x01,
0x17,
0x80,
0x01,
0x19,
0xA0,
0x01,
0x1B,
0xC0,
0x01,
0x1D,
0xE0,
0x01,
0x1F,
0x00,
0x02,
0x21,
0x20,
0x02,
0x23,
0x40,
0x02,
0x25,
0x60,
0x02,
0x27,
0x80,
0x02,
0x29,
0xA0,
0x02,
0x2B,
0xC0,
0x02,
0x2D,
0xE0,
0x02,
0x2F,
0x00,
0x03,
0x31,
0x20,
0x03,
0x33,
0x40,
0x03,
0x35,
0x60,
0x03,
0x37,
0x80,
0x03,
0x39,
0xA0,
0x03,
0x3B,
0xC0,
0x03,
0x3D,
0xE0,
0x03,
0x3F,
0x00,
0x04,
0x41,
0x20,
0x04,
0x43,
0x40,
0x04,
0x45,
0x60,
0x04,
0x47,
0x80,
0x04,
0x49,
0xA0,
0x04,
0x4B,
0xC0,
0x04,
0x4D,
0xE0,
0x04,
0x4F,
0x00,
0x05,
0x51,
0x20,
0x05,
0x53,
0x40,
0x05,
0x55,
0x60,
0x05,
0x57,
0x80,
0x05,
0x59,
0xA0,
0x05,
0x5B,
0xC0,
0x05,
0x5D,
0xE0,
0x05,
0x5F,
0x00,
0x06,
0x61,
0x20,
0x06,
0x63,
0x40,
0x06,
0x65,
0x60,
0x06,
0x67,
0x80,
0x06,
0x69,
0xA0,
0x06,
0x6B,
0xC0,
0x06,
0x6D,
0xE0,
0x06,
0x6F,
0x00,
0x07,
0x71,
0x20,
0x07,
0x73,
0x40,
0x07,
0x75,
0x60,
0x07,
0x77,
0x80,
0x07,
0x79,
0xA0,
0x07,
0x7B,
0xC0,
0x07,
0x7D,
0xE0,
0x07,
0x7F,
0x00,
0x08,
0x81,
0x20,
0x08,
0x83,
0x40,
0x08,
0x85,
0x60,
0x08,
0x87,
0x80,
0x08,
0x89,
0xA0,
0x08,
0x8B,
0xC0,
0x08,
0x8D,
0xE0,
0x08,
0x8F,
0x00,
0x09,
0x91,
0x20,
0x09,
0x93,
0x40,
0x09,
0x95,
0x60,
0x09,
0x97,
0x80,
0x09,
0x99,
0xA0,
0x09,
0x9B,
0xC0,
0x09,
0x9D,
0xE0,
0x09,
0x9F,
0x00,
0x0A,
0xA1,
0x20,
0x0A,
0xA3,
0x40,
0x0A,
0xA5,
0x60,
0x0A,
0xA7,
0x80,
0x0A,
0xA9,
0xA0,
0x0A,
0xAB,
0xC0,
0x0A,
0xAD,
0xE0,
0x0A,
0xAF,
0x00,
0x0B,
0xB1,
0x20,
0x0B,
0xB3,
0x40,
0x0B,
0xB5,
0x60,
0x0B,
0xB7,
0x80,
0x0B,
0xB9,
0xA0,
0x0B,
0xBB,
0xC0,
0x0B,
0xBD,
0xE0,
0x0B,
0xBF,
0x00,
0x0C,
0xC1,
0x20,
0x0C,
0xC3,
0x40,
0x0C,
0xC5,
0x60,
0x0C,
0xC7,
0x80,
0x0C,
0xC9,
0xA0,
0x0C,
0xCB,
0xC0,
0x0C,
0xCD,
0xE0,
0x0C,
0xCF,
0x00,
0x0D,
0xD1,
0x20,
0x0D,
0xD3,
0x40,
0x0D,
0xD5,
0x60,
0x0D,
0xD7,
0x80,
0x0D,
0xD9,
0xA0,
0x0D,
0xDB,
0xC0,
0x0D,
0xDD,
0xE0,
0x0D,
0xDF,
0x00,
0x0E,
0xE1,
0x20,
0x0E,
0xE3,
0x40,
0x0E,
0xE5,
0x60,
0x0E,
0xE7,
0x80,
0x0E,
0xE9,
0xA0,
0x0E,
0xEB,
0xC0,
0x0E,
0xED,
0xE0,
0x0E,
0xEF,
0x00,
0x0F,
0xF1,
0x20,
0x0F,
0xF3,
0x40,
0x0F,
0xF5,
0x60,
0x0F,
0xF7,
0x80,
0x0F,
0xF9,
0xA0,
0x0F,
0xFB,
0xC0,
0x0F,
0xFD,
0xE0,
0x0F,
0xFF,
0x00,
0x00,
0x00,
0x4B,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x0A,
0x14,
0x28,
0x35,
0x49,
0x58,
0x65,
0x74,
0x81,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x10,
0x1C,
0x27,
0x35,
0x4C,
0x5C,
0x6D,
0x7D,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x08,
0x16,
0x20,
0x2B,
0x46,
0x57,
0x69,
0x7B,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x02,
0x08,
0x10,
0x18,
0x20,
0x40,
0x52,
0x65,
0x79,
0x9D,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x05,
0x10,
0x18,
0x20,
0x38,
0x4F,
0x63,
0x76,
0x9C,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x04,
0x10,
0x18,
0x20,
0x30,
0x4B,
0x60,
0x73,
0x9B,
0xBA,
0xD6,
0xF1,
0xFD,
0xFF,
0x00,
0x01,
0x03,
0x08,
0x18,
0x20,
0x30,
0x40,
0x5B,
0x70,
0x98,
0xB9,
0xD6,
0xF1,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x07,
0x12,
0x15,
0x30,
0x40,
0x50,
0x6B,
0x94,
0xB7,
0xD5,
0xF0,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x06,
0x0E,
0x11,
0x22,
0x40,
0x50,
0x60,
0x8F,
0xB3,
0xD3,
0xF0,
0xFB,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x0B,
0x0D,
0x11,
0x34,
0x50,
0x60,
0x8B,
0xB0,
0xD1,
0xEE,
0xFA,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x08,
0x0A,
0x0D,
0x2C,
0x3C,
0x55,
0x80,
0xA8,
0xCB,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x06,
0x07,
0x0B,
0x24,
0x35,
0x4E,
0x77,
0xA0,
0xC6,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x05,
0x06,
0x09,
0x1C,
0x2E,
0x47,
0x6D,
0x98,
0xC0,
0xE3,
0xF3,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x04,
0x05,
0x08,
0x17,
0x27,
0x41,
0x67,
0x91,
0xC0,
0xE0,
0xF0,
0xFF,
0x00,
0x01,
0x01,
0x02,
0x04,
0x05,
0x07,
0x13,
0x24,
0x3B,
0x69,
0x95,
0xB9,
0xE0,
0xF0,
0x00,
0x00,
0x01,
0x01,
0x01,
0x04,
0x04,
0x07,
0x0C,
0x1D,
0x32,
0x67,
0x91,
0xB7,
0xDA,
0xF0,
0x00,
0x00,
0x0A,
0x14,
0x28,
0x35,
0x49,
0x58,
0x65,
0x74,
0x81,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x10,
0x1C,
0x27,
0x35,
0x4C,
0x5C,
0x6D,
0x7D,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x08,
0x16,
0x20,
0x2B,
0x46,
0x57,
0x69,
0x7B,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x02,
0x08,
0x10,
0x18,
0x20,
0x40,
0x52,
0x65,
0x79,
0x9D,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x05,
0x10,
0x18,
0x20,
0x38,
0x4F,
0x63,
0x76,
0x9C,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x04,
0x10,
0x18,
0x20,
0x30,
0x4B,
0x60,
0x73,
0x9B,
0xBA,
0xD6,
0xF1,
0xFD,
0xFF,
0x00,
0x01,
0x03,
0x08,
0x18,
0x20,
0x30,
0x40,
0x5B,
0x70,
0x98,
0xB9,
0xD6,
0xF1,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x07,
0x12,
0x15,
0x30,
0x40,
0x50,
0x6B,
0x94,
0xB7,
0xD5,
0xF0,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x06,
0x0E,
0x11,
0x22,
0x40,
0x50,
0x60,
0x8F,
0xB3,
0xD3,
0xF0,
0xFB,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x0B,
0x0D,
0x11,
0x34,
0x50,
0x60,
0x8B,
0xB0,
0xD1,
0xEE,
0xFA,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x08,
0x0A,
0x0D,
0x2C,
0x3C,
0x55,
0x80,
0xA8,
0xCB,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x06,
0x07,
0x0B,
0x24,
0x35,
0x4E,
0x77,
0xA0,
0xC6,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x05,
0x06,
0x09,
0x1C,
0x2E,
0x47,
0x6D,
0x98,
0xC0,
0xE3,
0xF3,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x04,
0x05,
0x08,
0x17,
0x27,
0x41,
0x67,
0x91,
0xC0,
0xE0,
0xF0,
0xFF,
0x00,
0x01,
0x01,
0x02,
0x04,
0x05,
0x07,
0x13,
0x24,
0x3B,
0x69,
0x95,
0xB9,
0xE0,
0xF0,
0x00,
0x00,
0x01,
0x01,
0x01,
0x04,
0x04,
0x07,
0x0C,
0x1D,
0x32,
0x67,
0x91,
0xB7,
0xDA,
0xF0,
0x00,
0x00,
0x0A,
0x14,
0x28,
0x35,
0x49,
0x58,
0x65,
0x74,
0x81,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x10,
0x1C,
0x27,
0x35,
0x4C,
0x5C,
0x6D,
0x7D,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x08,
0x16,
0x20,
0x2B,
0x46,
0x57,
0x69,
0x7B,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x02,
0x08,
0x10,
0x18,
0x20,
0x40,
0x52,
0x65,
0x79,
0x9D,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x05,
0x10,
0x18,
0x20,
0x38,
0x4F,
0x63,
0x76,
0x9C,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x04,
0x10,
0x18,
0x20,
0x30,
0x4B,
0x60,
0x73,
0x9B,
0xBA,
0xD6,
0xF1,
0xFD,
0xFF,
0x00,
0x01,
0x03,
0x08,
0x18,
0x20,
0x30,
0x40,
0x5B,
0x70,
0x98,
0xB9,
0xD6,
0xF1,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x07,
0x12,
0x15,
0x30,
0x40,
0x50,
0x6B,
0x94,
0xB7,
0xD5,
0xF0,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x06,
0x0E,
0x11,
0x22,
0x40,
0x50,
0x60,
0x8F,
0xB3,
0xD3,
0xF0,
0xFB,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x0B,
0x0D,
0x11,
0x34,
0x50,
0x60,
0x8B,
0xB0,
0xD1,
0xEE,
0xFA,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x08,
0x0A,
0x0D,
0x2C,
0x3C,
0x55,
0x80,
0xA8,
0xCB,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x06,
0x07,
0x0B,
0x24,
0x35,
0x4E,
0x77,
0xA0,
0xC6,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x05,
0x06,
0x09,
0x1C,
0x2E,
0x47,
0x6D,
0x98,
0xC0,
0xE3,
0xF3,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x04,
0x05,
0x08,
0x17,
0x27,
0x41,
0x67,
0x91,
0xC0,
0xE0,
0xF0,
0xFF,
0x00,
0x01,
0x01,
0x02,
0x04,
0x05,
0x07,
0x13,
0x24,
0x3B,
0x69,
0x95,
0xB9,
0xE0,
0xF0,
0x00,
0x00,
0x01,
0x01,
0x01,
0x04,
0x04,
0x07,
0x0C,
0x1D,
0x32,
0x67,
0x91,
0xB7,
0xDA,
0xF0,
0x00,
0xDE,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x24,
0xD5,
};/*end of boe hd hsd n56*/
static unsigned char tcon_boe_fhd_goa_n10[LCD_TCON_TABLE_MAX] = {
0x40,
0x44,
0x44,
0x44,
0x44,
0x00,
0x00,
0x00,
0x00,
0x44,
0x44,
0x44,
0x40,
0x00,
0x00,
0x00,
0xE4,
0x1B,
0x00,
0x20, /* 0x013 //0x00 --> 0x20 */
0x0F,
0xC8,
0x00,
0x11,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xC0,
0x6F,
0x00,
0x88,
0x2B,
0x00,
0x10,
0x32,
0x54,
0x76,
0x90,
0x06,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x07,
0x80,
0x03,
0x28,
0x00,
0x00,
0x00,
0x00,
0x40,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x40, /* 0x05c //0x00 --> 0x40 //[6]:od_en */
0x00,
0x04,
0x00,
0x80,
0x0F,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x03,
0x80,
0x08,
0x10,
0x09,
0x20,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xB4,
0x33,
0x00,
0x3B,
0x00,
0x06,
0x01,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xE8,
0x01,
0x5A,
0x00,
0x2A,
0xE8,
0x00,
0x02,
0x00,
0x02,
0x3D,
0xA3,
0xC2,
0x33,
0x82,
0xCA,
0x28,
0xC2,
0x2D,
0x22,
0xB1,
0xFB,
0x1F,
0xA1,
0x56,
0x11,
0x90,
0xBD,
0x02,
0xD0,
0x14,
0x00,
0x20,
0x80,
0x77,
0x98,
0xFF,
0x4F,
0x38,
0x3E,
0xF4,
0xC0,
0x44,
0x04,
0x96,
0xCC,
0x01,
0xFF,
0x0A,
0x0A,
0x0A,
0x0C,
0x89,
0x70,
0x04,
0x4C,
0x64,
0xC0,
0x6C,
0x68,
0x21,
0xD0,
0x80,
0x52,
0x00,
0x88,
0x00,
0x0A,
0x00,
0x08,
0x05,
0xDC,
0x03,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x38,
0x11,
0x11,
0x20, /* 0x113: 0x00 --> 0x20, bit[5] */
0x80,
0x37,
0x00,
0x00,
0x00,
0x00,
0x0C,
0x01,
0x10,
0x3C,
0x82, /* 0x11e //0xc0 --> 0x82 */
0x27, /* 0x11f //0x03 --> 0x27 */
0x3C, /* 0x120 //0x1e --> 0x3c */
0x0C,
0x20,
0x00,
0x18,
0x0F, /* 0x125 //0x0b --> 0x0f */
0x00,
0x64,
0xC8,
0x00,
0x00,
0x0A,
0x20,
0x00,
0xCC,
0x99,
0x33,
0xCC,
0xDD,
0xEE,
0xCC,
0xDD,
0xEE,
0xCC,
0xDD,
0xEE,
0xCC,
0xDD,
0xEE,
0xCC,
0xDD,
0xEE,
0xCC,
0xDD,
0xEE,
0xCC,
0xDD,
0xEE,
0xCC,
0xDD,
0xEE,
0x10,
0x88,
0x8F,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x08,
0x10,
0x18,
0x00,
0x00,
0x00,
0x00,
0x00,
0x30,
0xE8,
0xFC,
0x03,
0x21,
0x49,
0xFF,
0xFF,
0xFF,
0x04,
0x20,
0xA0,
0x86,
0x01,
0x03,
0xA0,
0x86,
0x01,
0xD4,
0x38,
0x34,
0xC0,
0x38,
0x74,
0x01,
0xF9,
0xC7,
0x11,
0xC7,
0x73,
0x3C,
0x80,
0xE0,
0xC7,
0x1E,
0x38,
0x6D,
0x60,
0x64,
0xF9,
0xC3,
0x06,
0x18,
0x9C,
0x40,
0x80,
0xE0,
0xC7,
0x1E,
0x38,
0x4A,
0x38,
0x64,
0x2C,
0x07,
0x00,
0x07,
0x0B,
0xB8,
0x80,
0x70,
0x07,
0x00,
0x07,
0x05,
0x14,
0x80,
0x3E,
0xCC,
0xCC,
0xCC,
0xFD,
0xE8,
0x80,
0x20,
0x89,
0x85,
0x22,
0x03,
0xE8,
0x80,
0x04,
0x50,
0xFF,
0x30,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x00,
0x01,
0xF0,
0xFF,
0xE9,
0x87,
0x07,
0x20,
0x0C,
0x01,
0x10,
0x01,
0x00,
0x01,
0xF0,
0xFF,
0x64,
0x80,
0x70,
0x24,
0x41,
0x03,
0x20,
0x01,
0x00,
0x01,
0xF0,
0xFF,
0x32,
0x20,
0x4E,
0x24,
0x41,
0x03,
0x20,
0x01,
0x00,
0x01,
0xF0,
0xFF,
0x32,
0x00,
0x78,
0x40,
0x01,
0x05,
0x3B,
0x01,
0x00,
0x01,
0x10,
0x44,
0xB0,
0x04,
0x4B,
0x44,
0x01,
0x05,
0x3A,
0x01,
0x00,
0x02,
0x20,
0x44,
0xB0,
0x04,
0x4B,
0x44,
0x01,
0x05,
0x39,
0x01,
0x00,
0x03,
0x30,
0x44,
0xB0,
0x04,
0x4B,
0x44,
0x01,
0x05,
0x38,
0x01,
0x00,
0x04,
0x40,
0x44,
0xB0,
0x04,
0x4B,
0x44,
0x01,
0x05,
0x37,
0x01,
0x00,
0x05,
0x50,
0x44,
0xB0,
0x04,
0x4B,
0x44,
0x01,
0x05,
0x36,
0x01,
0x00,
0x06,
0x60,
0x44,
0xB0,
0x04,
0x4B,
0x46,
0x01,
0x66,
0x25,
0x01,
0x00,
0x03,
0xA0,
0x43,
0xC8,
0x40,
0x06,
0x46,
0x01,
0x77,
0x14,
0x01,
0x00,
0x03,
0xA0,
0x43,
0xC8,
0x40,
0x06,
0x40,
0x29,
0x10,
0x10,
0xB4,
0x00,
0x01,
0xF0,
0xFF,
0x00,
0x00,
0x00,
0x41,
0x29,
0x10,
0x10,
0xB4,
0x00,
0x01,
0xF0,
0xFF,
0x00,
0x00,
0x00,
0x24,
0x41,
0x03,
0x30,
0x01,
0x00,
0x01,
0xF0,
0xFF,
0x32,
0x40,
0x06,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x90,
0x80,
0x70,
0x60,
0x50,
0x40,
0x20,
0x00,
0x10,
0xF0,
0xF0,
0xF0,
0xC0,
0xD0,
0xF0,
0xF0,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x10,
0x02,
0x10,
0x10,
0x10,
0x10,
0x10,
0x10,
0x04,
0xAA,
0x55,
0x00,
0x00,
0x00,
0x87,
0x00,
0x80,
0x00,
0x08,
0x07, /* 0x2b3 //0x00 --> 0x07 */
0x80, /* 0x2b4 //0x08 --> 0x80 */
0x07,
0x80,
0x02,
0x00,
0x20,
0x01,
0x1E,
0x00,
0x1A,
0x00,
0x0C,
0x0D,
0xB7,
0x03,
0x94,
0x18,
0x00,
0x10,
0xF0,
0x07,
0x80,
0x20,
0x00,
0x06,
0x0B,
0x0B,
0x33,
0x0E,
0x1C,
0x2A,
0x38,
0x46,
0x54,
0x62,
0x69,
0x70,
0x77,
0x79,
0x7B,
0x7D,
0x7E,
0x02,
0x04,
0x00,
0x04,
0x00,
0x0D,
0x3E,
0x0E,
0x3C,
0x1F,
0x3A,
0x1F,
0x38,
0x1F,
0x78,
0x18,
0x78,
0x19,
0x76,
0x1A,
0x76,
0x1B,
0x74,
0x2C,
0x74,
0x2D,
0x74,
0x3D,
0x74,
0x6F,
0x00,
0x08,
0x11,
0x1A,
0x23,
0x2C,
0x2D,
0x3E,
0x10,
0x22,
0x33,
0x44,
0x55,
0x66,
0x87,
0x88,
0x4F,
0xF5,
0xFC,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xFD,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x20,
0x00,
0x03,
0x40,
0x00,
0x05,
0x60,
0x00,
0x07,
0x80,
0x00,
0x09,
0xA0,
0x00,
0x0B,
0xC0,
0x00,
0x0D,
0xE0,
0x00,
0x0F,
0x00,
0x01,
0x11,
0x20,
0x01,
0x13,
0x40,
0x01,
0x15,
0x60,
0x01,
0x17,
0x80,
0x01,
0x19,
0xA0,
0x01,
0x1B,
0xC0,
0x01,
0x1D,
0xE0,
0x01,
0x1F,
0x00,
0x02,
0x21,
0x20,
0x02,
0x23,
0x40,
0x02,
0x25,
0x60,
0x02,
0x27,
0x80,
0x02,
0x29,
0xA0,
0x02,
0x2B,
0xC0,
0x02,
0x2D,
0xE0,
0x02,
0x2F,
0x00,
0x03,
0x31,
0x20,
0x03,
0x33,
0x40,
0x03,
0x35,
0x60,
0x03,
0x37,
0x80,
0x03,
0x39,
0xA0,
0x03,
0x3B,
0xC0,
0x03,
0x3D,
0xE0,
0x03,
0x3F,
0x00,
0x04,
0x41,
0x20,
0x04,
0x43,
0x40,
0x04,
0x45,
0x60,
0x04,
0x47,
0x80,
0x04,
0x49,
0xA0,
0x04,
0x4B,
0xC0,
0x04,
0x4D,
0xE0,
0x04,
0x4F,
0x00,
0x05,
0x51,
0x20,
0x05,
0x53,
0x40,
0x05,
0x55,
0x60,
0x05,
0x57,
0x80,
0x05,
0x59,
0xA0,
0x05,
0x5B,
0xC0,
0x05,
0x5D,
0xE0,
0x05,
0x5F,
0x00,
0x06,
0x61,
0x20,
0x06,
0x63,
0x40,
0x06,
0x65,
0x60,
0x06,
0x67,
0x80,
0x06,
0x69,
0xA0,
0x06,
0x6B,
0xC0,
0x06,
0x6D,
0xE0,
0x06,
0x6F,
0x00,
0x07,
0x71,
0x20,
0x07,
0x73,
0x40,
0x07,
0x75,
0x60,
0x07,
0x77,
0x80,
0x07,
0x79,
0xA0,
0x07,
0x7B,
0xC0,
0x07,
0x7D,
0xE0,
0x07,
0x7F,
0x00,
0x08,
0x81,
0x20,
0x08,
0x83,
0x40,
0x08,
0x85,
0x60,
0x08,
0x87,
0x80,
0x08,
0x89,
0xA0,
0x08,
0x8B,
0xC0,
0x08,
0x8D,
0xE0,
0x08,
0x8F,
0x00,
0x09,
0x91,
0x20,
0x09,
0x93,
0x40,
0x09,
0x95,
0x60,
0x09,
0x97,
0x80,
0x09,
0x99,
0xA0,
0x09,
0x9B,
0xC0,
0x09,
0x9D,
0xE0,
0x09,
0x9F,
0x00,
0x0A,
0xA1,
0x20,
0x0A,
0xA3,
0x40,
0x0A,
0xA5,
0x60,
0x0A,
0xA7,
0x80,
0x0A,
0xA9,
0xA0,
0x0A,
0xAB,
0xC0,
0x0A,
0xAD,
0xE0,
0x0A,
0xAF,
0x00,
0x0B,
0xB1,
0x20,
0x0B,
0xB3,
0x40,
0x0B,
0xB5,
0x60,
0x0B,
0xB7,
0x80,
0x0B,
0xB9,
0xA0,
0x0B,
0xBB,
0xC0,
0x0B,
0xBD,
0xE0,
0x0B,
0xBF,
0x00,
0x0C,
0xC1,
0x20,
0x0C,
0xC3,
0x40,
0x0C,
0xC5,
0x60,
0x0C,
0xC7,
0x80,
0x0C,
0xC9,
0xA0,
0x0C,
0xCB,
0xC0,
0x0C,
0xCD,
0xE0,
0x0C,
0xCF,
0x00,
0x0D,
0xD1,
0x20,
0x0D,
0xD3,
0x40,
0x0D,
0xD5,
0x60,
0x0D,
0xD7,
0x80,
0x0D,
0xD9,
0xA0,
0x0D,
0xDB,
0xC0,
0x0D,
0xDD,
0xE0,
0x0D,
0xDF,
0x00,
0x0E,
0xE1,
0x20,
0x0E,
0xE3,
0x40,
0x0E,
0xE5,
0x60,
0x0E,
0xE7,
0x80,
0x0E,
0xE9,
0xA0,
0x0E,
0xEB,
0xC0,
0x0E,
0xED,
0xE0,
0x0E,
0xEF,
0x00,
0x0F,
0xF1,
0x20,
0x0F,
0xF3,
0x40,
0x0F,
0xF5,
0x60,
0x0F,
0xF7,
0x80,
0x0F,
0xF9,
0xA0,
0x0F,
0xFB,
0xC0,
0x0F,
0xFD,
0xE0,
0x0F,
0xFF,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x20,
0x00,
0x03,
0x40,
0x00,
0x05,
0x60,
0x00,
0x07,
0x80,
0x00,
0x09,
0xA0,
0x00,
0x0B,
0xC0,
0x00,
0x0D,
0xE0,
0x00,
0x0F,
0x00,
0x01,
0x11,
0x20,
0x01,
0x13,
0x40,
0x01,
0x15,
0x60,
0x01,
0x17,
0x80,
0x01,
0x19,
0xA0,
0x01,
0x1B,
0xC0,
0x01,
0x1D,
0xE0,
0x01,
0x1F,
0x00,
0x02,
0x21,
0x20,
0x02,
0x23,
0x40,
0x02,
0x25,
0x60,
0x02,
0x27,
0x80,
0x02,
0x29,
0xA0,
0x02,
0x2B,
0xC0,
0x02,
0x2D,
0xE0,
0x02,
0x2F,
0x00,
0x03,
0x31,
0x20,
0x03,
0x33,
0x40,
0x03,
0x35,
0x60,
0x03,
0x37,
0x80,
0x03,
0x39,
0xA0,
0x03,
0x3B,
0xC0,
0x03,
0x3D,
0xE0,
0x03,
0x3F,
0x00,
0x04,
0x41,
0x20,
0x04,
0x43,
0x40,
0x04,
0x45,
0x60,
0x04,
0x47,
0x80,
0x04,
0x49,
0xA0,
0x04,
0x4B,
0xC0,
0x04,
0x4D,
0xE0,
0x04,
0x4F,
0x00,
0x05,
0x51,
0x20,
0x05,
0x53,
0x40,
0x05,
0x55,
0x60,
0x05,
0x57,
0x80,
0x05,
0x59,
0xA0,
0x05,
0x5B,
0xC0,
0x05,
0x5D,
0xE0,
0x05,
0x5F,
0x00,
0x06,
0x61,
0x20,
0x06,
0x63,
0x40,
0x06,
0x65,
0x60,
0x06,
0x67,
0x80,
0x06,
0x69,
0xA0,
0x06,
0x6B,
0xC0,
0x06,
0x6D,
0xE0,
0x06,
0x6F,
0x00,
0x07,
0x71,
0x20,
0x07,
0x73,
0x40,
0x07,
0x75,
0x60,
0x07,
0x77,
0x80,
0x07,
0x79,
0xA0,
0x07,
0x7B,
0xC0,
0x07,
0x7D,
0xE0,
0x07,
0x7F,
0x00,
0x08,
0x81,
0x20,
0x08,
0x83,
0x40,
0x08,
0x85,
0x60,
0x08,
0x87,
0x80,
0x08,
0x89,
0xA0,
0x08,
0x8B,
0xC0,
0x08,
0x8D,
0xE0,
0x08,
0x8F,
0x00,
0x09,
0x91,
0x20,
0x09,
0x93,
0x40,
0x09,
0x95,
0x60,
0x09,
0x97,
0x80,
0x09,
0x99,
0xA0,
0x09,
0x9B,
0xC0,
0x09,
0x9D,
0xE0,
0x09,
0x9F,
0x00,
0x0A,
0xA1,
0x20,
0x0A,
0xA3,
0x40,
0x0A,
0xA5,
0x60,
0x0A,
0xA7,
0x80,
0x0A,
0xA9,
0xA0,
0x0A,
0xAB,
0xC0,
0x0A,
0xAD,
0xE0,
0x0A,
0xAF,
0x00,
0x0B,
0xB1,
0x20,
0x0B,
0xB3,
0x40,
0x0B,
0xB5,
0x60,
0x0B,
0xB7,
0x80,
0x0B,
0xB9,
0xA0,
0x0B,
0xBB,
0xC0,
0x0B,
0xBD,
0xE0,
0x0B,
0xBF,
0x00,
0x0C,
0xC1,
0x20,
0x0C,
0xC3,
0x40,
0x0C,
0xC5,
0x60,
0x0C,
0xC7,
0x80,
0x0C,
0xC9,
0xA0,
0x0C,
0xCB,
0xC0,
0x0C,
0xCD,
0xE0,
0x0C,
0xCF,
0x00,
0x0D,
0xD1,
0x20,
0x0D,
0xD3,
0x40,
0x0D,
0xD5,
0x60,
0x0D,
0xD7,
0x80,
0x0D,
0xD9,
0xA0,
0x0D,
0xDB,
0xC0,
0x0D,
0xDD,
0xE0,
0x0D,
0xDF,
0x00,
0x0E,
0xE1,
0x20,
0x0E,
0xE3,
0x40,
0x0E,
0xE5,
0x60,
0x0E,
0xE7,
0x80,
0x0E,
0xE9,
0xA0,
0x0E,
0xEB,
0xC0,
0x0E,
0xED,
0xE0,
0x0E,
0xEF,
0x00,
0x0F,
0xF1,
0x20,
0x0F,
0xF3,
0x40,
0x0F,
0xF5,
0x60,
0x0F,
0xF7,
0x80,
0x0F,
0xF9,
0xA0,
0x0F,
0xFB,
0xC0,
0x0F,
0xFD,
0xE0,
0x0F,
0xFF,
0x00,
0x00,
0x00,
0x00,
0x00,
0x01,
0x20,
0x00,
0x03,
0x40,
0x00,
0x05,
0x60,
0x00,
0x07,
0x80,
0x00,
0x09,
0xA0,
0x00,
0x0B,
0xC0,
0x00,
0x0D,
0xE0,
0x00,
0x0F,
0x00,
0x01,
0x11,
0x20,
0x01,
0x13,
0x40,
0x01,
0x15,
0x60,
0x01,
0x17,
0x80,
0x01,
0x19,
0xA0,
0x01,
0x1B,
0xC0,
0x01,
0x1D,
0xE0,
0x01,
0x1F,
0x00,
0x02,
0x21,
0x20,
0x02,
0x23,
0x40,
0x02,
0x25,
0x60,
0x02,
0x27,
0x80,
0x02,
0x29,
0xA0,
0x02,
0x2B,
0xC0,
0x02,
0x2D,
0xE0,
0x02,
0x2F,
0x00,
0x03,
0x31,
0x20,
0x03,
0x33,
0x40,
0x03,
0x35,
0x60,
0x03,
0x37,
0x80,
0x03,
0x39,
0xA0,
0x03,
0x3B,
0xC0,
0x03,
0x3D,
0xE0,
0x03,
0x3F,
0x00,
0x04,
0x41,
0x20,
0x04,
0x43,
0x40,
0x04,
0x45,
0x60,
0x04,
0x47,
0x80,
0x04,
0x49,
0xA0,
0x04,
0x4B,
0xC0,
0x04,
0x4D,
0xE0,
0x04,
0x4F,
0x00,
0x05,
0x51,
0x20,
0x05,
0x53,
0x40,
0x05,
0x55,
0x60,
0x05,
0x57,
0x80,
0x05,
0x59,
0xA0,
0x05,
0x5B,
0xC0,
0x05,
0x5D,
0xE0,
0x05,
0x5F,
0x00,
0x06,
0x61,
0x20,
0x06,
0x63,
0x40,
0x06,
0x65,
0x60,
0x06,
0x67,
0x80,
0x06,
0x69,
0xA0,
0x06,
0x6B,
0xC0,
0x06,
0x6D,
0xE0,
0x06,
0x6F,
0x00,
0x07,
0x71,
0x20,
0x07,
0x73,
0x40,
0x07,
0x75,
0x60,
0x07,
0x77,
0x80,
0x07,
0x79,
0xA0,
0x07,
0x7B,
0xC0,
0x07,
0x7D,
0xE0,
0x07,
0x7F,
0x00,
0x08,
0x81,
0x20,
0x08,
0x83,
0x40,
0x08,
0x85,
0x60,
0x08,
0x87,
0x80,
0x08,
0x89,
0xA0,
0x08,
0x8B,
0xC0,
0x08,
0x8D,
0xE0,
0x08,
0x8F,
0x00,
0x09,
0x91,
0x20,
0x09,
0x93,
0x40,
0x09,
0x95,
0x60,
0x09,
0x97,
0x80,
0x09,
0x99,
0xA0,
0x09,
0x9B,
0xC0,
0x09,
0x9D,
0xE0,
0x09,
0x9F,
0x00,
0x0A,
0xA1,
0x20,
0x0A,
0xA3,
0x40,
0x0A,
0xA5,
0x60,
0x0A,
0xA7,
0x80,
0x0A,
0xA9,
0xA0,
0x0A,
0xAB,
0xC0,
0x0A,
0xAD,
0xE0,
0x0A,
0xAF,
0x00,
0x0B,
0xB1,
0x20,
0x0B,
0xB3,
0x40,
0x0B,
0xB5,
0x60,
0x0B,
0xB7,
0x80,
0x0B,
0xB9,
0xA0,
0x0B,
0xBB,
0xC0,
0x0B,
0xBD,
0xE0,
0x0B,
0xBF,
0x00,
0x0C,
0xC1,
0x20,
0x0C,
0xC3,
0x40,
0x0C,
0xC5,
0x60,
0x0C,
0xC7,
0x80,
0x0C,
0xC9,
0xA0,
0x0C,
0xCB,
0xC0,
0x0C,
0xCD,
0xE0,
0x0C,
0xCF,
0x00,
0x0D,
0xD1,
0x20,
0x0D,
0xD3,
0x40,
0x0D,
0xD5,
0x60,
0x0D,
0xD7,
0x80,
0x0D,
0xD9,
0xA0,
0x0D,
0xDB,
0xC0,
0x0D,
0xDD,
0xE0,
0x0D,
0xDF,
0x00,
0x0E,
0xE1,
0x20,
0x0E,
0xE3,
0x40,
0x0E,
0xE5,
0x60,
0x0E,
0xE7,
0x80,
0x0E,
0xE9,
0xA0,
0x0E,
0xEB,
0xC0,
0x0E,
0xED,
0xE0,
0x0E,
0xEF,
0x00,
0x0F,
0xF1,
0x20,
0x0F,
0xF3,
0x40,
0x0F,
0xF5,
0x60,
0x0F,
0xF7,
0x80,
0x0F,
0xF9,
0xA0,
0x0F,
0xFB,
0xC0,
0x0F,
0xFD,
0xE0,
0x0F,
0xFF,
0x00,
0x00,
0x00,
0x4B,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x0A,
0x14,
0x28,
0x35,
0x49,
0x58,
0x65,
0x74,
0x81,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x10,
0x1C,
0x27,
0x35,
0x4C,
0x5C,
0x6D,
0x7D,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x08,
0x16,
0x20,
0x2B,
0x46,
0x57,
0x69,
0x7B,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x02,
0x08,
0x10,
0x18,
0x20,
0x40,
0x52,
0x65,
0x79,
0x9D,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x05,
0x10,
0x18,
0x20,
0x38,
0x4F,
0x63,
0x76,
0x9C,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x04,
0x10,
0x18,
0x20,
0x30,
0x4B,
0x60,
0x73,
0x9B,
0xBA,
0xD6,
0xF1,
0xFD,
0xFF,
0x00,
0x01,
0x03,
0x08,
0x18,
0x20,
0x30,
0x40,
0x5B,
0x70,
0x98,
0xB9,
0xD6,
0xF1,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x07,
0x12,
0x15,
0x30,
0x40,
0x50,
0x6B,
0x94,
0xB7,
0xD5,
0xF0,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x06,
0x0E,
0x11,
0x22,
0x40,
0x50,
0x60,
0x8F,
0xB3,
0xD3,
0xF0,
0xFB,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x0B,
0x0D,
0x11,
0x34,
0x50,
0x60,
0x8B,
0xB0,
0xD1,
0xEE,
0xFA,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x08,
0x0A,
0x0D,
0x2C,
0x3C,
0x55,
0x80,
0xA8,
0xCB,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x06,
0x07,
0x0B,
0x24,
0x35,
0x4E,
0x77,
0xA0,
0xC6,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x05,
0x06,
0x09,
0x1C,
0x2E,
0x47,
0x6D,
0x98,
0xC0,
0xE3,
0xF3,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x04,
0x05,
0x08,
0x17,
0x27,
0x41,
0x67,
0x91,
0xC0,
0xE0,
0xF0,
0xFF,
0x00,
0x01,
0x01,
0x02,
0x04,
0x05,
0x07,
0x13,
0x24,
0x3B,
0x69,
0x95,
0xB9,
0xE0,
0xF0,
0x00,
0x00,
0x01,
0x01,
0x01,
0x04,
0x04,
0x07,
0x0C,
0x1D,
0x32,
0x67,
0x91,
0xB7,
0xDA,
0xF0,
0x00,
0x00,
0x0A,
0x14,
0x28,
0x35,
0x49,
0x58,
0x65,
0x74,
0x81,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x10,
0x1C,
0x27,
0x35,
0x4C,
0x5C,
0x6D,
0x7D,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x08,
0x16,
0x20,
0x2B,
0x46,
0x57,
0x69,
0x7B,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x02,
0x08,
0x10,
0x18,
0x20,
0x40,
0x52,
0x65,
0x79,
0x9D,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x05,
0x10,
0x18,
0x20,
0x38,
0x4F,
0x63,
0x76,
0x9C,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x04,
0x10,
0x18,
0x20,
0x30,
0x4B,
0x60,
0x73,
0x9B,
0xBA,
0xD6,
0xF1,
0xFD,
0xFF,
0x00,
0x01,
0x03,
0x08,
0x18,
0x20,
0x30,
0x40,
0x5B,
0x70,
0x98,
0xB9,
0xD6,
0xF1,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x07,
0x12,
0x15,
0x30,
0x40,
0x50,
0x6B,
0x94,
0xB7,
0xD5,
0xF0,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x06,
0x0E,
0x11,
0x22,
0x40,
0x50,
0x60,
0x8F,
0xB3,
0xD3,
0xF0,
0xFB,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x0B,
0x0D,
0x11,
0x34,
0x50,
0x60,
0x8B,
0xB0,
0xD1,
0xEE,
0xFA,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x08,
0x0A,
0x0D,
0x2C,
0x3C,
0x55,
0x80,
0xA8,
0xCB,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x06,
0x07,
0x0B,
0x24,
0x35,
0x4E,
0x77,
0xA0,
0xC6,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x05,
0x06,
0x09,
0x1C,
0x2E,
0x47,
0x6D,
0x98,
0xC0,
0xE3,
0xF3,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x04,
0x05,
0x08,
0x17,
0x27,
0x41,
0x67,
0x91,
0xC0,
0xE0,
0xF0,
0xFF,
0x00,
0x01,
0x01,
0x02,
0x04,
0x05,
0x07,
0x13,
0x24,
0x3B,
0x69,
0x95,
0xB9,
0xE0,
0xF0,
0x00,
0x00,
0x01,
0x01,
0x01,
0x04,
0x04,
0x07,
0x0C,
0x1D,
0x32,
0x67,
0x91,
0xB7,
0xDA,
0xF0,
0x00,
0x00,
0x0A,
0x14,
0x28,
0x35,
0x49,
0x58,
0x65,
0x74,
0x81,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x10,
0x1C,
0x27,
0x35,
0x4C,
0x5C,
0x6D,
0x7D,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x04,
0x08,
0x16,
0x20,
0x2B,
0x46,
0x57,
0x69,
0x7B,
0x9E,
0xBB,
0xD7,
0xF1,
0xFF,
0xFF,
0x00,
0x02,
0x08,
0x10,
0x18,
0x20,
0x40,
0x52,
0x65,
0x79,
0x9D,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x05,
0x10,
0x18,
0x20,
0x38,
0x4F,
0x63,
0x76,
0x9C,
0xBB,
0xD7,
0xF1,
0xFE,
0xFF,
0x00,
0x02,
0x04,
0x10,
0x18,
0x20,
0x30,
0x4B,
0x60,
0x73,
0x9B,
0xBA,
0xD6,
0xF1,
0xFD,
0xFF,
0x00,
0x01,
0x03,
0x08,
0x18,
0x20,
0x30,
0x40,
0x5B,
0x70,
0x98,
0xB9,
0xD6,
0xF1,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x07,
0x12,
0x15,
0x30,
0x40,
0x50,
0x6B,
0x94,
0xB7,
0xD5,
0xF0,
0xFC,
0xFF,
0x00,
0x01,
0x03,
0x06,
0x0E,
0x11,
0x22,
0x40,
0x50,
0x60,
0x8F,
0xB3,
0xD3,
0xF0,
0xFB,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x0B,
0x0D,
0x11,
0x34,
0x50,
0x60,
0x8B,
0xB0,
0xD1,
0xEE,
0xFA,
0xFF,
0x00,
0x01,
0x02,
0x04,
0x08,
0x0A,
0x0D,
0x2C,
0x3C,
0x55,
0x80,
0xA8,
0xCB,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x06,
0x07,
0x0B,
0x24,
0x35,
0x4E,
0x77,
0xA0,
0xC6,
0xE7,
0xF7,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x05,
0x06,
0x09,
0x1C,
0x2E,
0x47,
0x6D,
0x98,
0xC0,
0xE3,
0xF3,
0xFF,
0x00,
0x01,
0x02,
0x03,
0x04,
0x05,
0x08,
0x17,
0x27,
0x41,
0x67,
0x91,
0xC0,
0xE0,
0xF0,
0xFF,
0x00,
0x01,
0x01,
0x02,
0x04,
0x05,
0x07,
0x13,
0x24,
0x3B,
0x69,
0x95,
0xB9,
0xE0,
0xF0,
0x00,
0x00,
0x01,
0x01,
0x01,
0x04,
0x04,
0x07,
0x0C,
0x1D,
0x32,
0x67,
0x91,
0xB7,
0xDA,
0xF0,
0x00,
0xDE,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x43,
0xE3,
};/*end of boe fhd goa n10*/
#define PR_BUF_MAX 100
void lcd_tcon_regs_table_print(struct mlvds_config_s *mlvds_conf)
{
int i, j, n;
char *buf;
if (mlvds_conf == NULL)
return;
if (mlvds_conf->tcon_enable == 0) {
LCDERR("%s: invalid tcon\n", __func__);
return;
}
if (mlvds_conf->reg_table == NULL) {
LCDERR("%s: invalid table\n", __func__);
return;
}
buf = (char *)malloc(PR_BUF_MAX * sizeof(char));
if (buf == NULL) {
LCDERR("%s: buf malloc error\n", __func__);
return;
}
LCDPR("%s:\n", __func__);
for (i = 0; i < 256; i++) {
n = snprintf(buf, PR_BUF_MAX, "0x%03x: ", (i * 16));
for (j = 0; j < 16; j++) {
n += snprintf(buf+n, PR_BUF_MAX, " 0x%02x",
mlvds_conf->reg_table[i*16+j]);
}
buf[n] = '\0';
printf("%s\n", buf);
}
free(buf);
}
void lcd_tcon_regs_readback_print(struct mlvds_config_s *mlvds_conf)
{
int i, j, n;
char *buf;
if (mlvds_conf == NULL)
return;
if (mlvds_conf->tcon_enable == 0) {
LCDERR("%s: invalid tcon\n", __func__);
return;
}
buf = (char *)malloc(PR_BUF_MAX * sizeof(char));
if (buf == NULL) {
LCDERR("%s: buf malloc error\n", __func__);
return;
}
LCDPR("%s:\n", __func__);
for (i = 0; i < 256; i++) {
n = snprintf(buf, PR_BUF_MAX, "0x%03x: ", (i * 16));
for (j = 0; j < 16; j++) {
n += snprintf(buf+n, PR_BUF_MAX, " 0x%02x",
lcd_tcon_read(i*16+j));
}
buf[n] = '\0';
printf("%s\n", buf);
}
free(buf);
}
static void lcd_tcon_od_check(unsigned char *table)
{
struct aml_lcd_drv_s *lcd_drv = aml_lcd_get_driver();
/* 0x05c[6] */
if (((table[92] >> 6) & 1) == 0)
return;
if (lcd_drv->lcd_config->lcd_control.mlvds_config->fb_addr == 0) {
table[92] &= ~(1 << 6);
LCDPR("%s: invalid fb, disable od function\n", __func__);
}
}
int lcd_tcon_sys_regs_update(unsigned char *table, int len)
{
int i;
struct aml_lcd_drv_s *lcd_drv = aml_lcd_get_driver();
if (lcd_drv->lcd_config->lcd_control.mlvds_config == NULL)
return -1;
if (lcd_drv->lcd_config->lcd_control.mlvds_config->tcon_enable == 0) {
LCDERR("%s: invalid tcon\n", __func__);
return -1;
}
if (table == NULL) {
LCDERR("%s: table is NULL\n", __func__);
return -1;
}
if (len > LCD_TCON_TABLE_MAX) {
LCDERR("%s: invalid table len %d\n", __func__, len);
return -1;
}
lcd_tcon_od_check(table);
for (i = 0; i < len; i++)
lcd_tcon_write((i + TCON_SYS_REG_START), table[i]);
LCDPR("%s: finished\n", __func__);
i = 0x05c;
LCDPR("%s: tcon reg readback: 0x%03x = 0x%08x\n",
__func__, i, lcd_tcon_read(i + TCON_SYS_REG_START));
return 0;
}
static void lcd_tcon_top_output_set(struct mlvds_config_s *mlvds_conf)
{
lcd_tcon_write(TCON_OUT_CH_SEL0, mlvds_conf->channel_sel0);
lcd_tcon_write(TCON_OUT_CH_SEL1, mlvds_conf->channel_sel1);
LCDPR("set tcon ch_sel: 0x%08x, 0x%08x\n",
mlvds_conf->channel_sel0, mlvds_conf->channel_sel1);
}
static int lcd_tcon_top_set(struct mlvds_config_s *mlvds_conf)
{
LCDPR("%s\n", __func__);
if (mlvds_conf->fb_addr == 0) {
LCDERR("%s: invalid address: 0x%08x\n",
__func__, mlvds_conf->fb_addr);
} else {
lcd_tcon_write(TCON_AXI_OFST, mlvds_conf->fb_addr);
LCDPR("set tcon fb_addr: 0x%08x\n", mlvds_conf->fb_addr);
}
lcd_tcon_write(TCON_CLK_CTRL, 0x001f);
lcd_tcon_write(TCON_TOP_CTRL, 0x0199);
lcd_tcon_write(TCON_RGB_IN_MUX, 0x24);
lcd_tcon_write(TCON_PLLLOCK_CNTL, 0x0037);
lcd_tcon_write(TCON_DDRIF_CTRL0, 0x33ff0004);
lcd_tcon_write(TCON_RST_CTRL, 0x003f);
lcd_tcon_write(TCON_RST_CTRL, 0x0000);
return 0;
}
int lcd_tcon_init(struct lcd_config_s *pconf)
{
struct mlvds_config_s *mlvds_conf;
mlvds_conf = pconf->lcd_control.mlvds_config;
if (mlvds_conf == NULL)
return -1;
if (mlvds_conf->tcon_enable == 0) {
LCDERR("%s: invalid tcon\n", __func__);
return -1;
}
/* reset apb for tcon */
lcd_cbus_setb(RESET7_REGISTER, 1, 12, 1);
udelay(100);
lcd_tcon_top_set(mlvds_conf);
lcd_tcon_sys_regs_update(mlvds_conf->reg_table, LCD_TCON_TABLE_MAX);
lcd_tcon_top_output_set(mlvds_conf);
return 0;
}
#define TCON_CTRL_TIMING_OFFSET 12
void lcd_tcon_disable(void)
{
unsigned int reg, i;
LCDPR("%s\n", __func__);
lcd_tcon_write((0x05c + TCON_SYS_REG_START), 0);
mdelay(100);
/* disable all ctrl signal */
for (i = 0; i < 16; i++) {
reg = TCON_CTRL_TIMING_BASE + (i * TCON_CTRL_TIMING_OFFSET);
lcd_tcon_setb(reg, 1, 3, 1);
}
lcd_tcon_setb(TCON_TOP_CTRL, 0, 4, 1);
}
int lcd_tcon_probe(char *dt_addr, struct lcd_config_s *pconf, int load_id)
{
int ret = 0;
unsigned char *para;
int key_len;
char *str;
int parent_offset;
char *propdata;
struct mlvds_config_s *mlvds_conf;
mlvds_conf = pconf->lcd_control.mlvds_config;
if (pconf->lcd_basic.lcd_type == LCD_MLVDS)
mlvds_conf->tcon_enable = 1;
else
return -1;
mlvds_conf->fb_addr = 0;
if (load_id & 0x1) {
parent_offset = fdt_path_offset(dt_addr, "/lcd");
if (parent_offset < 0) {
LCDERR("can't find /lcd node: %s\n", fdt_strerror(parent_offset));
str = getenv("tcon_fb_addr");
if (str)
mlvds_conf->fb_addr = simple_strtoul(str, NULL, 16);
} else {
propdata = (char *)fdt_getprop(dt_addr, parent_offset, "tcon_fb_addr", NULL);
if (propdata == NULL) {
LCDERR("failed to get tcon_fb_addr from dts\n");
str = getenv("tcon_fb_addr");
if (str)
mlvds_conf->fb_addr = simple_strtoul(str, NULL, 16);
} else {
mlvds_conf->fb_addr = be32_to_cpup((u32*)propdata);
}
}
} else {
str = getenv("tcon_fb_addr");
if (str)
mlvds_conf->fb_addr = simple_strtoul(str, NULL, 16);
}
LCDPR("tcon fb_addr = 0x%08x\n", mlvds_conf->fb_addr);
switch (pconf->lcd_basic.v_active) {
case 768:
mlvds_conf->reg_table = &tcon_boe_hd_hsd_n56[0];
LCDPR("tcon sys table select: n56\n");
break;
case 1080:
mlvds_conf->reg_table = &tcon_boe_fhd_goa_n10[0];
LCDPR("tcon sys table select: n10\n");
break;
default:
mlvds_conf->reg_table = &tcon_boe_hd_hsd_n56[0];
LCDPR("tcon sys table select: invalid\n");
break;
}
para = (unsigned char *)malloc(sizeof(unsigned char) * LCD_UKEY_TCON_SIZE);
if (!para) {
LCDERR("%s: Not enough memory\n", __func__);
return -1;
}
key_len = LCD_UKEY_TCON_SIZE;
memset(para, 0, (sizeof(unsigned char) * key_len));
ret = aml_lcd_unifykey_get_no_header("lcd_tcon", para, &key_len);
if (ret) {
free(para);
LCDERR("%s: !!!!!!!!!!!!tcon unifykey load error!!!!!!!!!!!!\n",
__func__);
return -1;
}
memcpy(mlvds_conf->reg_table, para, (sizeof(unsigned char) * LCD_UKEY_TCON_SIZE));
free(para);
LCDPR("tcon: load key len: %d\n", key_len);
return 0;
}