class? EscapeUnescape
{
?public static String? escape (String src)
?{
??int i;
??char j;
??StringBuffer tmp = new StringBuffer();
??tmp.ensureCapacity(src.length()*6);
??for (i=0;i<src.length() ;i++ )
??{
???j = src.charAt(i);
???if (Character.isDigit(j) || Character.isLowerCase(j) || Character.isUpperCase(j))
????tmp.append(j);
???else
????if (j<256)
????{
????tmp.append( "%" );
????if (j<16)
?????tmp.append( "0" );
????tmp.append( Integer.toString(j,16) );
????}
????else
????{
????tmp.append( "%u" );
????tmp.append( Integer.toString(j,16) );
????}
??}
??return tmp.toString();
?}
?public static String? unescape (String src)
?{
??StringBuffer tmp = new StringBuffer();
??tmp.ensureCapacity(src.length());
??int? lastPos=0,pos=0;
??char ch;
??while (lastPos<src.length())
??{
???pos = src.indexOf("%",lastPos);
???if (pos == lastPos)
????{
????if (src.charAt(pos+1)=='u')
?????{
?????ch = (char)Integer.parseInt(src.substring(pos+2,pos+6),16);
?????tmp.append(ch);
?????lastPos = pos+6;
?????}
????else
?????{
?????ch = (char)Integer.parseInt(src.substring(pos+1,pos+3),16);
?????tmp.append(ch);
?????lastPos = pos+3;
?????}
????}
???else
????{
????if (pos == -1)
?????{
?????tmp.append(src.substring(lastPos));
?????lastPos=src.length();
?????}
????else
?????{
?????tmp.append(src.substring(lastPos,pos));
?????lastPos=pos;
?????}
????}
??}
??return tmp.toString();
?}
?public static void main(String[] args)
?{
??String tmp="~!@#$%^&*()_+|\\=-,./?><;'][{}\"";
??System.out.println("testing escape : "+tmp);
??tmp =escape(tmp);
??System.out.println(tmp);
??System.out.println("testing unescape :"+tmp);
??System.out.println(unescape(tmp));
?}
}
??String cnStr = "測試數據";
??char[] chars = cnStr.toCharArray();
??System.out.print("<" + cnStr + ">的筆畫數分別是:");
??for (int i = 0; i < chars.length; i++) {
???System.out.print("*" + CnToStrokeCount.getStrokeCount(chars[i]));
??}
??System.out.println("*");
??cnStr = "CSDN - 專家門診 - Java";
??chars = cnStr.toCharArray();
??System.out.print("<" + cnStr + ">的筆畫數分別是:");
??for (int i = 0; i < chars.length; i++) {
???System.out.print("*" + CnToStrokeCount.getStrokeCount(chars[i]));
??}
??System.out.println("*");
??cnStr = "=====提問技巧,請大家注意!!=====";
??chars = cnStr.toCharArray();
??System.out.print("<" + cnStr + ">的筆畫數分別是:");
??for (int i = 0; i < chars.length; i++) {
???System.out.print("*" + CnToStrokeCount.getStrokeCount(chars[i]));
??}
??System.out.println("*");
?}
?/**
?* 根據漢字字符獲得筆畫數,拼音和非法字符默認為0
?* @param charcator char
?* @return int
?*/
?public static int getStrokeCount(char charcator) {
??byte[] bytes = (String.valueOf(charcator)).getBytes();
??if (bytes == null || bytes.length > 2 || bytes.length <= 0) {
???//錯誤引用,非合法字符
???return 0;
??}
??if (bytes.length == 1) {
???//英文字符
???return 0;
??}
??if (bytes.length == 2) {
???//中文字符
???int highByte = 256 + bytes[0];
???int lowByte = 256 + bytes[1];
???return getStrokeCount(highByte, lowByte);
??}
??//未知錯誤
??return 0;
?}
?/**
?*
?* @param highByte int:高位字節
?* @param lowByte int:低位字節
?* @return int
?*/
?private static int getStrokeCount(int highByte, int lowByte) {
??if (highByte < 0xB0
???|| highByte > 0xF7
???|| lowByte < 0xA1
???|| lowByte > 0xFE) {
???//非GB2312合法字符
???return -1;
??}
??int offset = (highByte - 0xB0) * (0xFE - 0xA0) + (lowByte - 0xA1);
??return gb2312StrokeCount[offset];
?}
?
? //GB2312的字符集的筆劃列表,可以參考gb2312字符全集
? private static int[] gb2312StrokeCount = {
? /* B0 */
? 10, 7, 10, 10, 8, 10, 9, 11,
? 17, 14, 13, 5, 13, 10, 12, 15,
? 10, 6, 10, 9, 13, 8, 10, 10,
? 8, 8, 10, 5, 10, 14, 16, 9,
? 12, 12, 15, 15, 7, 10, 5, 5,
? 7, 10, 2, 9, 4, 8, 12, 13,
? 7, 10, 7, 21, 10, 8, 5, 9,
? 6, 13, 8, 8, 9, 13, 12, 10,
? 13, 7, 10, 10, 8, 8, 7, 8,
? 7, 19, 5, 4, 8, 5, 9, 10,
? 14, 14, 9, 12, 15, 10, 15, 12,
? 12, 8, 9, 5, 15, 10,
? /* B1 */
? 16, 13, 9, 12, 8, 8, 8, 7,
? 15, 10, 13, 19, 8, 13, 12, 8,
? 5, 12, 9, 4, 9, 10, 7, 8,
? 12, 12, 10, 8, 8, 5, 11, 11,
? 11, 9, 9, 18, 9, 12, 14, 4,
? 13, 10, 8, 14, 13, 14, 6, 10,
? 9, 4, 7, 13, 6, 11, 14, 5,
? 13, 16, 17, 16, 9, 18, 5, 12,
? 8, 9, 9, 8, 4, 16, 16, 17,
? 12, 9, 11, 15, 8, 19, 16, 7,
? 15, 11, 12, 16, 13, 10, 13, 7,
? 6, 9, 5, 8, 9, 9,
? /* B2 */
? 10, 6, 8, 11, 15, 8, 10, 8,
? 12, 9, 13, 10, 14, 7, 8, 11,
? 11, 14, 12, 8, 7, 10, 2, 10,
? 7, 11, 4, 5, 7, 19, 10, 8,
? 17, 11, 12, 7, 3, 7, 12, 15,
? 8, 11, 11, 14, 16, 8, 10, 9,
? 11, 11, 7, 7, 10, 4, 7, 17,
? 16, 16, 15, 11, 9, 8, 12, 8,
? 5, 9, 7, 19, 12, 3, 9, 9,
? 9, 14, 12, 14, 7, 9, 8, 8,
? 10, 10, 12, 11, 14, 12, 11, 13,
? 11, 6, 11, 19, 8, 11,
? /* B3 */
? 6, 9, 11, 4, 11, 7, 2, 12,
? 8, 11, 10, 12, 7, 9, 12, 15,
? 15, 11, 7, 8, 4, 7, 15, 12,
? 7, 15, 10, 6, 7, 6, 11, 7,
? 7, 7, 12, 8, 15, 10, 9, 16,
? 6, 7, 10, 12, 12, 15, 8, 8,
? 10, 10, 10, 6, 13, 9, 11, 6,
? 7, 6, 6, 10, 8, 8, 4, 7,
? 10, 5, 9, 6, 6, 6, 11, 8,
? 8, 13, 12, 14, 13, 13, 13, 4,
? 11, 14, 4, 10, 7, 5, 16, 12,
? 18, 12, 13, 12, 9, 13,
? /* B4 */
? 10, 12, 24, 13, 13, 5, 12, 3,
? 9, 13, 7, 11, 12, 7, 9, 12,
? 15, 7, 6, 6, 7, 8, 11, 13,
? 8, 9, 13, 15, 10, 11, 7, 21,
? 18, 11, 11, 9, 14, 14, 13, 13,
? 10, 7, 6, 8, 12, 6, 15, 12,
? 7, 5, 4, 5, 11, 11, 15, 17,
? 9, 19, 16, 12, 14, 11, 13, 10,
? 13, 14, 11, 14, 7, 6, 3, 14,
? 15, 12, 11, 10, 13, 12, 6, 12,
? 14, 5, 3, 7, 4, 12, 17, 9,
? 9, 5, 9, 11, 9, 11,
? /* B5 */
? 9, 10, 8, 4, 8, 10, 11, 9,
? 5, 12, 7, 11, 11, 8, 11, 11,
? 6, 9, 10, 9, 10, 2, 10, 17,
? 10, 7, 11, 6, 8, 15, 11, 12,
? 11, 15, 11, 8, 19, 6, 12, 12,
? 17, 14, 4, 12, 7, 14, 8, 10,
? 11, 7, 10, 14, 14, 8, 8, 6,
? 12, 11, 9, 7, 10, 12, 16, 11,
? 13, 13, 9, 8, 16, 9, 5, 7,
? 7, 8, 11, 12, 11, 13, 13, 5,
? 16, 10, 2, 11, 6, 8, 10, 12,
? 10, 14, 15, 8, 11, 13,
? /* B6 */
? 2, 7, 5, 7, 8, 12, 13, 8,
? 4, 6, 5, 5, 12, 15, 6, 9,
? 8, 9, 7, 9, 11, 7, 4, 9,
? 7, 10, 12, 10, 13, 9, 12, 9,
? 10, 11, 13, 12, 7, 14, 7, 9,
? 12, 7, 14, 12, 14, 9, 11, 12,
? 11, 7, 4, 5, 15, 7, 19, 12,
? 10, 7, 9, 9, 12, 11, 9, 6,
? 6, 9, 13, 6, 13, 11, 8, 12,
? 11, 13, 10, 12, 9, 15, 6, 10,
? 10, 4, 7, 12, 11, 10, 10, 6,
? 2, 6, 5, 9, 9, 2,
? /* B7 */
? 9, 5, 9, 12, 6, 4, 9, 8,
? 9, 18, 6, 12, 18, 15, 8, 8,
? 17, 3, 10, 4, 7, 8, 8, 5,
? 7, 7, 7, 7, 4, 8, 8, 6,
? 7, 6, 6, 7, 8, 11, 8, 11,
? 3, 8, 10, 10, 7, 8, 8, 8,
? 9, 7, 11, 7, 8, 4, 7, 7,
? 12, 7, 10, 8, 6, 8, 12, 12,
? 4, 9, 8, 13, 10, 12, 4, 9,
? 11, 10, 5, 13, 6, 8, 4, 7,
? 7, 4, 15, 8, 14, 7, 8, 13,
? 12, 9, 11, 6, 9, 8,
? /* B8 */
? 10, 11, 13, 11, 5, 7, 7, 11,
? 10, 10, 8, 11, 12, 8, 14, 9,
? 11, 18, 12, 9, 12, 5, 8, 4,
? 13, 6, 12, 4, 7, 6, 13, 8,
? 15, 14, 8, 7, 13, 9, 11, 12,
? 3, 5, 7, 9, 9, 7, 10, 13,
? 8, 11, 21, 4, 6, 9, 9, 7,
? 7, 7, 12, 7, 16, 10, 10, 14,
? 10, 16, 13, 15, 15, 7, 10, 14,
? 12, 4, 11, 10, 8, 12, 9, 12,
? 10, 12, 9, 12, 11, 3, 6, 9,
? 10, 13, 10, 7, 8, 19,
? /* B9 */
? 10, 10, 11, 3, 7, 5, 10, 11,
? 8, 10, 4, 9, 3, 6, 7, 9,
? 7, 6, 9, 4, 7, 8, 8, 9,
? 8, 8, 11, 12, 11, 8, 14, 7,
? 8, 8, 8, 13, 5, 11, 9, 7,
? 8, 9, 10, 8, 12, 8, 5, 9,
? 14, 9, 13, 8, 8, 8, 12, 6,
? 8, 9, 6, 14, 11, 23, 12, 20,
? 8, 6, 3, 10, 13, 8, 6, 11,
? 5, 7, 9, 6, 9, 8, 9, 10,
? 8, 13, 9, 8, 12, 13, 12, 12,
? 10, 8, 8, 14, 6, 9,
? 15, 9, 10, 10, 6, 10, 9, 12,
? 14, 7, 12, 7, 11, 12, 8, 12,
? 7, 16, 16, 10, 7, 16, 10, 11,
? 6, 5, 5, 8, 10, 17, 17, 14,
? 11, 9, 6, 10, 5, 10, 8, 12,
? 10, 11, 10, 5, 8, 7, 6, 11,
? 13, 9, 8, 11, 14, 14, 15, 9,
? 15, 12, 11, 9, 9, 9, 10, 7,
? 15, 16, 9, 8, 9, 10, 9, 11,
? 9, 7, 5, 6, 12, 9, 12, 7,
? 9, 10, 6, 8, 5, 8, 13, 10,
? 12, 9, 15, 8, 15, 12,
? /* BB */
? 8, 8, 11, 7, 4, 7, 4, 7,
? 9, 6, 12, 12, 8, 6, 4, 8,
? 13, 9, 7, 11, 7, 6, 8, 10,
? 7, 12, 10, 11, 10, 12, 13, 11,
? 10, 9, 4, 9, 12, 11, 16, 15,
? 17, 9, 11, 12, 13, 10, 13, 9,
? 11, 6, 9, 12, 17, 9, 12, 6,
? 13, 10, 15, 5, 12, 11, 10, 11,
? 6, 10, 5, 6, 9, 9, 9, 8,
? 11, 13, 9, 11, 17, 9, 6, 4,
? 10, 8, 12, 16, 8, 11, 5, 6,
? 11, 6, 13, 15, 10, 14,
? /* BC */
? 6, 5, 9, 16, 4, 7, 10, 11,
? 12, 6, 7, 12, 13, 20, 12, 3,
? 9, 10, 6, 7, 13, 6, 9, 2,
? 10, 3, 13, 7, 16, 8, 6, 11,
? 8, 11, 9, 11, 11, 4, 5, 9,
? 7, 7, 7, 10, 6, 14, 9, 6,
? 8, 10, 5, 9, 12, 10, 5, 10,
? 11, 15, 6, 9, 8, 13, 7, 10,
? 7, 6, 11, 7, 13, 10, 8, 8,
? 6, 12, 9, 11, 9, 14, 12, 8,
? 10, 13, 9, 11, 11, 9, 14, 13,
? 12, 9, 4, 13, 15, 6,
? /* BD */
? 10, 10, 9, 8, 11, 12, 10, 8,
? 15, 9, 9, 10, 6, 19, 12, 10,
? 9, 6, 6, 13, 8, 15, 12, 17,
? 12, 10, 6, 8, 9, 9, 9, 20,
? 12, 11, 11, 8, 11, 9, 7, 9,
? 16, 9, 13, 11, 14, 10, 10, 5,
? 12, 12, 11, 9, 11, 12, 6, 14,
? 7, 5, 10, 8, 11, 13, 14, 9,
? 9, 13, 8, 7, 17, 7, 9, 10,
? 4, 9, 9, 8, 3, 12, 4, 8,
? 4, 9, 18, 10, 13, 4, 13, 7,
? 13, 10, 13, 7, 10, 10,
? /* BE */
? 6, 7, 9, 14, 8, 13, 12, 16,
? 8, 11, 14, 13, 8, 4, 19, 12,
? 11, 14, 14, 12, 16, 8, 10, 13,
? 11, 10, 8, 9, 12, 12, 7, 5,
? 7, 9, 3, 7, 2, 10, 11, 11,
? 5, 6, 13, 8, 12, 8, 17, 8,
? 8, 10, 8, 8, 11, 7, 8, 9,
? 9, 8, 14, 7, 11, 4, 8, 11,
? 15, 13, 10, 5, 11, 8, 10, 10,
? 12, 10, 10, 11, 8, 10, 15, 23,
? 7, 11, 10, 17, 9, 6, 6, 9,
? 7, 11, 9, 6, 7, 10,
? /* BF */
? 9, 12, 10, 9, 10, 12, 8, 5,
? 9, 4, 12, 13, 8, 12, 5, 12,
? 11, 7, 9, 9, 11, 14, 17, 6,
? 7, 4, 8, 6, 9, 10, 15, 8,
? 8, 9, 12, 15, 14, 9, 7, 9,
? 5, 12, 7, 8, 9, 10, 8, 11,
? 9, 10, 7, 7, 8, 10, 4, 11,
? 7, 3, 6, 11, 9, 10, 13, 8,
? 14, 7, 12, 6, 9, 9, 13, 10,
? 7, 13, 8, 7, 10, 12, 6, 12,
? 7, 10, 8, 11, 7, 7, 3, 11,
? 8, 13, 12, 9, 13, 11,
? /* C0 */
? 12, 12, 12, 8, 8, 10, 7, 9,
? 6, 13, 12, 8, 8, 12, 14, 12,
? 14, 11, 10, 7, 13, 13, 11, 9,
? 8, 16, 12, 5, 15, 14, 12, 9,
? 16, 12, 9, 13, 11, 12, 10, 11,
? 8, 10, 10, 10, 7, 7, 6, 8,
? 9, 13, 10, 10, 11, 5, 13, 18,
? 16, 15, 11, 17, 9, 16, 6, 9,
? 8, 12, 13, 7, 9, 11, 11, 15,
? 16, 10, 10, 13, 11, 7, 7, 15,
? 5, 10, 9, 6, 10, 7, 5, 7,
? 10, 4, 7, 12, 8, 9,
? /* C1 */
? 12, 5, 11, 7, 8, 2, 14, 10,
? 9, 12, 10, 7, 18, 13, 8, 10,
? 8, 11, 11, 12, 10, 9, 8, 13,
? 10, 11, 13, 7, 7, 11, 12, 12,
? 9, 10, 15, 11, 14, 7, 16, 14,
? 5, 15, 2, 14, 17, 14, 10, 6,
? 12, 10, 6, 11, 12, 8, 17, 16,
? 9, 7, 20, 11, 15, 10, 7, 8,
? 9, 11, 13, 13, 10, 7, 11, 10,
? 7, 10, 8, 11, 5, 5, 13, 11,
? 14, 12, 13, 10, 6, 15, 10, 9,
? 4, 5, 11, 8, 11, 16,
? /* C2 */
? 11, 8, 8, 7, 13, 9, 12, 15,
? 14, 8, 7, 5, 11, 7, 8, 11,
? 7, 8, 12, 19, 13, 21, 13, 10,
? 11, 16, 12, 8, 7, 15, 7, 6,
? 11, 8, 10, 15, 12, 12, 10, 12,
? 9, 11, 13, 11, 9, 10, 9, 13,
? 7, 7, 11, 11, 7, 8, 6, 4,
? 7, 7, 6, 11, 17, 8, 11, 13,
? 14, 14, 13, 12, 9, 9, 9, 6,
? 11, 7, 8, 9, 3, 9, 14, 6,
? 10, 6, 7, 8, 6, 9, 15, 14,
? 12, 13, 14, 11, 14, 14,
? /* C3 */
? 13, 6, 9, 8, 8, 6, 10, 11,
? 8, 13, 4, 5, 10, 5, 8, 9,
? 12, 14, 9, 3, 8, 8, 11, 14,
? 15, 13, 7, 9, 12, 14, 7, 9,
? 9, 12, 8, 12, 3, 7, 5, 11,
? 13, 17, 13, 13, 11, 11, 8, 11,
? 15, 19, 17, 9, 11, 8, 6, 10,
? 8, 8, 14, 11, 12, 12, 10, 11,
? 11, 7, 9, 10, 12, 9, 8, 11,
? 13, 17, 9, 12, 8, 7, 14, 5,
? 5, 8, 5, 11, 10, 9, 8, 16,
? 8, 11, 6, 8, 13, 13,
? /* C4 */
? 14, 19, 14, 14, 16, 15, 20, 8,
? 5, 10, 15, 16, 8, 13, 13, 8,
? 11, 6, 9, 8, 7, 7, 8, 5,
? 13, 14, 13, 12, 14, 4, 5, 13,
? 8, 16, 10, 9, 7, 9, 6, 9,
? 7, 6, 2, 5, 9, 8, 9, 7,
? 10, 22, 9, 10, 9, 8, 11, 8,
? 10, 4, 14, 10, 8, 16, 10, 8,
? 5, 7, 7, 10, 13, 9, 13, 14,
? 8, 6, 15, 15, 11, 8, 10, 14,
? 5, 7, 10, 10, 19, 11, 15, 15,
? 10, 11, 9, 8, 16, 5,
? /* C5 */
? 8, 8, 4, 7, 9, 7, 10, 9,
? 6, 7, 5, 7, 9, 3, 13, 9,
? 8, 9, 17, 20, 10, 10, 8, 9,
? 8, 18, 7, 11, 7, 11, 9, 8,
? 8, 8, 12, 8, 11, 12, 11, 12,
? 9, 19, 15, 11, 15, 9, 10, 7,
? 9, 6, 8, 10, 16, 9, 7, 8,
? 7, 9, 10, 12, 8, 8, 9, 11,
? 14, 12, 10, 10, 8, 7, 12, 9,
? 10, 8, 11, 15, 12, 13, 12, 13,
? 16, 16, 8, 13, 11, 13, 8, 9,
? 21, 7, 8, 15, 12, 9,
? /* C6 */
? 11, 12, 10, 5, 4, 12, 15, 7,
? 20, 15, 11, 4, 12, 15, 14, 16,
? 11, 14, 16, 9, 13, 8, 9, 13,
? 6, 8, 8, 11, 5, 8, 10, 7,
? 9, 8, 8, 11, 11, 10, 14, 8,
? 11, 10, 5, 12, 4, 10, 12, 11,
? 13, 10, 6, 10, 12, 10, 14, 19,
? 18, 12, 12, 10, 11, 8, 2, 10,
? 14, 9, 7, 8, 12, 8, 8, 11,
? 11, 10, 6, 14, 8, 6, 11, 10,
? 6, 3, 6, 7, 9, 9, 16, 4,
? 6, 7, 7, 8, 5, 11,
? /* C7 */
? 9, 9, 9, 6, 8, 10, 3, 6,
? 13, 5, 12, 11, 16, 10, 10, 9,
? 15, 13, 8, 15, 11, 12, 4, 14,
? 8, 7, 12, 7, 14, 14, 12, 7,
? 16, 14, 14, 10, 10, 17, 6, 8,
? 5, 16, 15, 12, 10, 9, 10, 4,
? 8, 5, 8, 9, 9, 9, 9, 10,
? 12, 13, 7, 15, 12, 13, 7, 8,
? 9, 9, 10, 10, 11, 16, 12, 12,
? 11, 8, 10, 6, 12, 7, 9, 5,
? 7, 11, 7, 5, 9, 8, 12, 4,
? 11, 6, 11, 8, 7, 11,
? /* C8 */
? 8, 11, 17, 15, 5, 11, 23, 6,
? 16, 10, 6, 11, 10, 4, 8, 4,
? 10, 8, 16, 7, 13, 14, 12, 11,
? 12, 13, 12, 16, 5, 9, 22, 20,
? 20, 20, 5, 9, 7, 9, 12, 10,
? 4, 4, 2, 7, 7, 6, 4, 3,
? 7, 6, 5, 4, 4, 6, 9, 13,
? 9, 16, 14, 13, 10, 9, 4, 12,
? 9, 6, 9, 20, 16, 17, 6, 10,
? 8, 6, 2, 15, 8, 6, 15, 13,
? 12, 7, 10, 8, 10, 15, 9, 11,
? 13, 17, 13, 14, 3, 8,
? /* C9 */
? 6, 12, 10, 13, 8, 12, 12, 6,
? 12, 13, 6, 10, 12, 14, 10, 9,
? 6, 8, 7, 7, 13, 11, 13, 12,
? 10, 9, 8, 7, 3, 7, 14, 8,
? 5, 8, 16, 17, 16, 12, 6, 10,
? 15, 14, 6, 11, 12, 10, 3, 8,
? 14, 11, 10, 12, 10, 6, 3, 14,
? 4, 10, 7, 8, 11, 11, 11, 6,
? 8, 11, 13, 10, 13, 10, 7, 6,
? 10, 5, 8, 7, 7, 11, 10, 8,
? 9, 7, 8, 11, 9, 8, 13, 11,
? 7, 5, 12, 9, 4, 11,
? /* CA */
? 9, 11, 12, 9, 5, 6, 5, 9,
? 9, 12, 8, 3, 8, 2, 5, 9,
? 7, 4, 9, 9, 8, 7, 5, 5,
? 8, 9, 8, 8, 6, 5, 3, 5,
? 9, 8, 9, 14, 10, 8, 9, 13,
? 16, 9, 5, 8, 12, 8, 4, 5,
? 9, 9, 8, 8, 6, 4, 9, 6,
? 7, 11, 11, 8, 14, 11, 15, 8,
? 11, 10, 7, 13, 8, 12, 11, 12,
? 4, 12, 11, 15, 16, 12, 17, 13,
? 13, 12, 13, 12, 5, 8, 9, 7,
? 6, 9, 14, 11, 13, 14,
? /* CB */
? 10, 8, 9, 14, 10, 5, 5, 10,
? 9, 17, 4, 11, 10, 4, 13, 12,
? 7, 17, 9, 12, 9, 11, 10, 9,
? 12, 15, 15, 9, 7, 5, 5, 6,
? 13, 6, 13, 5, 7, 6, 8, 3,
? 8, 10, 8, 10, 9, 7, 6, 9,
? 12, 15, 16, 14, 7, 12, 9, 10,
? 10, 12, 14, 13, 13, 11, 7, 8,
? 14, 13, 14, 9, 11, 11, 10, 21,
? 13, 6, 17, 12, 14, 10, 6, 10,
? 10, 13, 11, 10, 14, 11, 10, 12,
? 8, 13, 5, 5, 6, 12,
? /* CC */
? 16, 9, 17, 15, 9, 8, 8, 5,
? 10, 11, 4, 8, 7, 7, 13, 8,
? 15, 13, 7, 17, 13, 15, 14, 10,
? 8, 12, 10, 14, 11, 5, 9, 6,
? 13, 13, 11, 12, 15, 10, 16, 10,
? 15, 11, 15, 10, 11, 10, 13, 10,
? 11, 10, 9, 11, 10, 5, 10, 10,
? 18, 13, 10, 13, 11, 10, 15, 12,
? 12, 15, 16, 12, 7, 12, 17, 11,
? 10, 9, 8, 4, 11, 13, 5, 11,
? 9, 14, 12, 9, 7, 8, 11, 13,
? 9, 10, 8, 4, 7, 9,
? /* CD */
? 5, 6, 11, 9, 9, 9, 12, 10,
? 10, 13, 17, 6, 11, 7, 12, 11,
? 10, 12, 9, 12, 11, 7, 5, 10,
? 5, 7, 9, 8, 10, 10, 10, 11,
? 3, 6, 8, 12, 6, 11, 13, 13,
? 13, 14, 9, 7, 4, 17, 8, 6,
? 11, 10, 7, 6, 8, 12, 7, 8,
? 12, 9, 9, 12, 9, 9, 4, 10,
? 9, 5, 15, 9, 12, 8, 10, 3,
? 11, 7, 13, 10, 11, 12, 11, 8,
? 11, 3, 12, 7, 4, 3, 8, 6,
? 8, 8, 11, 7, 6, 9,
? /* CE */
? 20, 13, 6, 4, 7, 10, 7, 11,
? 11, 4, 14, 11, 7, 11, 8, 6,
? 6, 7, 7, 5, 14, 8, 9, 9,
? 12, 17, 7, 12, 11, 11, 15, 3,
? 14, 12, 10, 4, 9, 7, 7, 14,
? 10, 6, 13, 10, 8, 9, 13, 10,
? 12, 7, 14, 8, 12, 7, 7, 7,
? 9, 4, 6, 9, 9, 4, 7, 11,
? 7, 7, 4, 8, 4, 10, 4, 14,
? 6, 9, 7, 5, 13, 11, 8, 4,
? 5, 10, 9, 8, 14, 8, 6, 11,
? 8, 12, 15, 6, 13, 10,
? /* CF */
? 12, 10, 7, 11, 15, 3, 11, 14,
? 11, 13, 6, 12, 17, 11, 10, 3,
? 13, 12, 11, 9, 7, 12, 6, 8,
? 15, 9, 7, 17, 14, 13, 9, 8,
? 9, 3, 12, 10, 6, 11, 13, 6,
? 5, 14, 6, 9, 8, 11, 11, 7,
? 9, 8, 13, 9, 9, 8, 13, 7,
? 13, 11, 12, 9, 10, 8, 8, 9,
? 11, 22, 9, 15, 17, 12, 3, 12,
? 10, 8, 13, 9, 8, 9, 9, 15,
? 13, 6, 11, 11, 12, 15, 9, 10,
? 18, 12, 10, 10, 11, 10,
? /* D0 */
? 3, 7, 10, 7, 11, 10, 10, 13,
? 8, 13, 15, 15, 6, 9, 13, 6,
? 11, 8, 11, 5, 11, 9, 19, 16,
? 8, 8, 12, 10, 16, 7, 12, 8,
? 7, 13, 7, 4, 9, 11, 9, 13,
? 12, 12, 6, 6, 9, 7, 6, 6,
? 16, 8, 7, 8, 8, 5, 4, 10,
? 6, 7, 12, 14, 6, 9, 10, 6,
? 13, 12, 7, 10, 10, 14, 6, 14,
? 11, 14, 9, 10, 6, 13, 11, 9,
? 6, 7, 10, 9, 12, 12, 11, 11,
? 7, 12, 9, 11, 11, 5,
? /* D1 */
? 9, 19, 10, 9, 13, 16, 8, 5,
? 11, 6, 9, 14, 12, 6, 8, 6,
? 6, 6, 10, 6, 5, 5, 9, 6,
? 6, 8, 9, 10, 7, 3, 7, 4,
? 10, 11, 13, 11, 12, 9, 6, 6,
? 11, 9, 11, 10, 11, 10, 7, 9,
? 12, 8, 7, 7, 15, 11, 8, 8,
? 8, 11, 11, 9, 14, 10, 12, 16,
? 6, 9, 12, 10, 9, 12, 10, 11,
? 10, 9, 5, 10, 10, 7, 6, 8,
? 8, 6, 9, 6, 10, 6, 11, 9,
? 10, 14, 16, 13, 7, 14,
? /* D2 */
? 13, 6, 13, 11, 12, 9, 9, 10,
? 9, 9, 20, 12, 15, 8, 6, 11,
? 7, 3, 6, 11, 5, 5, 6, 12,
? 8, 11, 1, 12, 7, 12, 11, 8,
? 6, 6, 13, 6, 12, 11, 5, 10,
? 14, 7, 8, 9, 18, 12, 9, 10,
? 3, 1, 7, 4, 4, 7, 8, 7,
? 6, 3, 7, 17, 11, 13, 9, 6,
? 13, 13, 15, 4, 3, 10, 13, 8,
? 5, 10, 7, 6, 17, 11, 8, 9,
? 9, 6, 10, 9, 6, 8, 7, 11,
? 11, 11, 7, 4, 4, 11,
? /* D3 */
? 5, 8, 15, 11, 18, 7, 14, 10,
? 11, 11, 9, 14, 7, 17, 9, 15,
? 13, 12, 9, 9, 8, 7, 17, 10,
? 11, 13, 14, 13, 8, 8, 10, 5,
? 11, 9, 5, 9, 6, 11, 7, 4,
? 5, 7, 10, 7, 8, 12, 7, 6,
? 4, 5, 7, 12, 9, 2, 5, 6,
? 11, 3, 8, 13, 13, 13, 14, 7,
? 9, 12, 8, 12, 12, 11, 11, 4,
? 10, 8, 3, 6, 9, 6, 9, 6,
? 5, 11, 6, 8, 6, 12, 12, 10,
? 12, 13, 11, 9, 8, 13,
? /* D4 */
? 10, 12, 12, 10, 15, 5, 10, 11,
? 10, 4, 9, 10, 10, 12, 14, 7,
? 7, 10, 13, 13, 12, 7, 8, 14,
? 9, 9, 4, 6, 12, 11, 9, 8,
? 12, 4, 10, 10, 10, 4, 9, 4,
? 9, 4, 7, 15, 11, 10, 13, 5,
? 5, 10, 6, 10, 9, 7, 10, 10,
? 6, 6, 9, 19, 12, 16, 10, 10,
? 12, 14, 17, 12, 19, 8, 6, 16,
? 9, 20, 16, 10, 7, 7, 17, 8,
? 8, 6, 8, 10, 9, 15, 15, 12,
? 16, 4, 12, 12, 5, 5,
? /* D5 */
? 11, 8, 9, 9, 14, 8, 5, 9,
? 7, 14, 10, 6, 10, 10, 14, 18,
? 9, 13, 11, 8, 10, 8, 14, 11,
? 10, 22, 9, 5, 9, 10, 12, 11,
? 15, 11, 14, 14, 7, 12, 10, 7,
? 3, 7, 8, 5, 8, 16, 13, 8,
? 9, 7, 8, 9, 13, 13, 6, 14,
? 5, 14, 7, 10, 12, 16, 8, 13,
? 14, 7, 10, 9, 13, 10, 13, 10,
? 16, 6, 7, 8, 8, 10, 7, 15,
? 10, 15, 6, 13, 9, 11, 8, 9,
? 6, 8, 16, 9, 5, 9,
? /* D6 */
? 9, 10, 8, 7, 6, 8, 4, 7,
? 14, 8, 8, 10, 5, 3, 8, 11,
? 8, 12, 12, 6, 10, 8, 7, 9,
? 4, 11, 5, 6, 7, 7, 10, 11,
? 6, 10, 13, 8, 9, 8, 12, 10,
? 13, 8, 8, 11, 12, 8, 11, 4,
? 9, 8, 9, 10, 8, 9, 8, 9,
? 6, 6, 6, 8, 6, 9, 7, 12,
? 9, 7, 8, 8, 10, 8, 9, 17,
? 10, 10, 12, 6, 11, 10, 8, 10,
? 6, 10, 12, 8, 17, 15, 5, 11,
? 9, 7, 11, 8, 12, 12,
? /* D7 */
? 7, 8, 9, 8, 7, 4, 9, 4,
? 9, 8, 15, 14, 15, 10, 6, 12,
? 6, 15, 6, 7, 12, 13, 9, 14,
? 7, 11, 10, 10, 10, 8, 8, 10,
? 12, 8, 10, 11, 11, 7, 9, 9,
? 9, 10, 9, 12, 11, 7, 12, 5,
? 9, 13, 3, 6, 11, 6, 18, 12,
? 15, 8, 11, 9, 7, 7, 7, 9,
? 12, 10, 7, 8, 11, 9, 7, 7,
? 8, 10, 20, 16, 15, 12, 13, 12,
? 15, 9, 5, 7, 9, 11, 7, 7,
? 10, 0, 0, 0, 0, 0,
? /* D8 */
? 3, 3, 3, 4, 4, 4, 5, 6,
? 6, 10, 10, 16, 1, 8, 1, 2,
? 3, 4, 4, 5, 5, 6, 9, 11,
? 14, 14, 19, 1, 8, 14, 2, 6,
? 4, 7, 7, 11, 14, 4, 6, 10,
? 11, 12, 14, 15, 16, 2, 5, 8,
? 11, 11, 15, 8, 7, 2, 4, 6,
? 7, 8, 8, 8, 9, 10, 10, 10,
? 13, 13, 14, 14, 15, 16, 2, 8,
? 2, 4, 4, 4, 5, 5, 5, 5,
? 6, 6, 6, 6, 6, 6, 6, 6,
? 6, 7, 7, 7, 7, 7,
? /* D9 */
? 7, 7, 7, 7, 8, 8, 8, 8,
? 8, 8, 8, 8, 8, 8, 8, 8,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 10, 10, 10, 10, 10, 10, 10,
? 10, 10, 10, 10, 10, 10, 11, 11,
? 11, 11, 11, 11, 11, 12, 12, 12,
? 13, 14, 14, 14, 14, 14, 14, 15,
? 15, 5, 6, 7, 7, 9, 17, 6,
? 8, 4, 12, 16, 17, 18, 21, 2,
? 9, 9, 11, 6, 6, 7, 2, 8,
? 10, 10, 11, 12, 12, 12, 13, 16,
? 19, 19, 2, 6, 8, 8,
? /* DA */
? 10, 2, 10, 10, 2, 5, 5, 5,
? 6, 6, 6, 7, 7, 7, 7, 7,
? 7, 8, 8, 8, 8, 8, 8, 8,
? 8, 8, 8, 8, 9, 9, 9, 9,
? 10, 10, 10, 10, 10, 10, 10, 11,
? 11, 11, 11, 11, 11, 11, 11, 11,
? 11, 11, 12, 12, 12, 12, 12, 13,
? 13, 14, 14, 14, 15, 15, 19, 2,
? 8, 2, 5, 5, 6, 6, 7, 7,
? 7, 7, 8, 9, 9, 10, 10, 10,
? 11, 11, 11, 16, 5, 5, 5, 5,
? 6, 6, 7, 7, 7, 7,
? /* DB */
? 7, 7, 8, 8, 8, 8, 8, 8,
? 8, 9, 9, 9, 9, 9, 10, 10,
? 11, 11, 13, 13, 13, 14, 14, 16,
? 19, 17, 5, 7, 5, 7, 7, 8,
? 10, 10, 11, 15, 9, 17, 20, 2,
? 2, 6, 10, 2, 5, 10, 12, 7,
? 9, 9, 14, 16, 16, 17, 6, 6,
? 6, 6, 6, 6, 6, 7, 7, 7,
? 8, 8, 8, 8, 8, 8, 8, 8,
? 8, 8, 9, 9, 9, 9, 9, 9,
? 9, 9, 9, 10, 10, 10, 10, 10,
? 10, 11, 11, 11, 11, 11,
? /* DC */
? 11, 11, 11, 11, 11, 12, 12, 12,
? 12, 13, 13, 14, 14, 14, 15, 20,
? 21, 22, 3, 5, 5, 6, 6, 6,
? 6, 6, 6, 6, 7, 7, 7, 7,
? 7, 7, 7, 7, 7, 7, 7, 7,
? 7, 7, 7, 7, 7, 7, 7, 7,
? 7, 7, 7, 8, 8, 8, 8, 8,
? 8, 8, 8, 8, 8, 8, 8, 8,
? 8, 8, 8, 8, 8, 8, 9, 9,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 9, 9, 9, 9, 9,
? /* DD */
? 9, 9, 9, 9, 9, 9, 9, 10,
? 10, 10, 10, 10, 10, 10, 10, 10,
? 10, 10, 10, 10, 10, 10, 10, 10,
? 10, 10, 10, 11, 11, 11, 11, 11,
? 11, 11, 11, 11, 11, 11, 11, 11,
? 11, 11, 11, 11, 11, 11, 11, 11,
? 11, 11, 11, 11, 11, 12, 12, 12,
? 12, 12, 12, 12, 12, 12, 12, 12,
? 12, 12, 12, 12, 12, 12, 12, 13,
? 13, 13, 13, 13, 13, 13, 13, 13,
? 13, 13, 13, 13, 13, 13, 13, 14,
? 14, 14, 14, 14, 14, 14,
? /* DE */
? 14, 14, 14, 14, 15, 15, 15, 15,
? 15, 15, 15, 15, 15, 16, 16, 16,
? 16, 16, 16, 16, 16, 16, 17, 17,
? 17, 17, 17, 18, 19, 19, 19, 20,
? 20, 22, 3, 9, 6, 7, 9, 9,
? 10, 10, 11, 3, 5, 5, 12, 3,
? 6, 7, 8, 8, 8, 8, 9, 9,
? 9, 10, 10, 10, 11, 11, 11, 11,
? 11, 11, 11, 11, 11, 11, 11, 11,
? 12, 12, 12, 12, 12, 12, 12, 12,
? 12, 12, 13, 13, 13, 13, 13, 13,
? 13, 13, 14, 14, 14, 14,
? /* DF */
? 14, 15, 15, 15, 15, 16, 16, 16,
? 17, 17, 19, 23, 25, 3, 7, 8,
? 12, 5, 5, 5, 5, 5, 5, 6,
? 6, 6, 7, 7, 7, 7, 7, 7,
? 7, 7, 7, 7, 7, 8, 8, 8,
? 8, 8, 8, 8, 8, 8, 8, 8,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 10, 10, 10, 10, 10, 10, 10, 10,
? 10, 10, 10, 11, 11, 11, 11, 11,
? 11, 11, 11, 11, 11, 11,
? /* E0 */
? 11, 11, 11, 11, 11, 11, 11, 11,
? 12, 12, 12, 12, 12, 12, 12, 12,
? 12, 12, 12, 12, 12, 12, 12, 12,
? 12, 13, 13, 13, 13, 13, 13, 13,
? 13, 13, 13, 13, 13, 13, 13, 13,
? 13, 13, 13, 13, 13, 13, 14, 14,
? 14, 14, 14, 14, 14, 14, 14, 15,
? 15, 15, 15, 15, 15, 15, 15, 15,
? 15, 15, 16, 16, 16, 16, 16, 16,
? 17, 17, 19, 25, 3, 6, 6, 7,
? 7, 8, 9, 10, 11, 11, 16, 7,
? 8, 8, 8, 10, 11, 11,
? /* E1 */
? 11, 12, 14, 14, 15, 15, 6, 6,
? 7, 7, 7, 7, 7, 7, 7, 7,
? 7, 8, 8, 8, 8, 8, 8, 8,
? 8, 8, 8, 9, 9, 9, 9, 10,
? 10, 11, 11, 11, 11, 11, 11, 11,
? 12, 12, 12, 12, 12, 12, 12, 12,
? 12, 12, 13, 13, 13, 14, 15, 15,
? 17, 17, 19, 3, 7, 8, 9, 9,
? 9, 10, 11, 11, 12, 13, 15, 16,
? 24, 3, 3, 5, 6, 6, 6, 7,
? 7, 8, 8, 8, 9, 9, 9, 9,
? 10, 10, 10, 10, 10, 10,
? /* E2 */
? 10, 11, 11, 11, 11, 11, 11, 11,
? 12, 12, 12, 12, 12, 12, 14, 14,
? 15, 15, 16, 17, 20, 6, 14, 12,
? 14, 3, 3, 6, 7, 7, 7, 7,
? 7, 8, 9, 10, 10, 11, 12, 12,
? 13, 13, 14, 15, 15, 25, 5, 7,
? 7, 8, 9, 9, 11, 11, 11, 11,
? 12, 13, 14, 15, 16, 16, 17, 3,
? 5, 6, 6, 7, 7, 7, 7, 7,
? 7, 7, 7, 7, 7, 7, 8, 8,
? 8, 8, 8, 8, 8, 8, 8, 8,
? 8, 9, 9, 9, 9, 9,
? /* E3 */
? 9, 9, 10, 10, 10, 10, 10, 10,
? 10, 10, 11, 11, 11, 11, 11, 11,
? 11, 11, 12, 12, 12, 12, 12, 12,
? 12, 13, 13, 14, 15, 15, 15, 16,
? 16, 18, 8, 17, 4, 6, 7, 7,
? 7, 7, 9, 9, 10, 10, 10, 11,
? 11, 11, 11, 11, 11, 12, 12, 13,
? 13, 13, 14, 3, 4, 8, 3, 6,
? 6, 6, 7, 7, 7, 7, 7, 7,
? 7, 7, 7, 7, 7, 7, 8, 8,
? 8, 8, 8, 8, 8, 8, 8, 8,
? 8, 8, 8, 8, 8, 8,
? /* E4 */
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 9, 10, 10, 10, 10, 10, 10,
? 10, 10, 10, 10, 10, 11, 11, 11,
? 11, 11, 11, 11, 11, 11, 11, 11,
? 11, 11, 11, 11, 12, 12, 12, 12,
? 12, 12, 12, 12, 12, 12, 12, 12,
? 13, 13, 13, 13, 13, 13, 13, 13,
? 13, 13, 13, 13, 13, 13, 13, 13,
? 13, 14, 14, 14, 14, 14, 14, 14,
? 14, 14, 14, 14, 14, 14, 14, 15,
? 15, 15, 15, 15, 15, 16,
? /* E5 */
? 16, 16, 16, 16, 16, 17, 17, 17,
? 17, 17, 19, 19, 19, 20, 20, 21,
? 24, 3, 5, 8, 8, 9, 10, 12,
? 13, 14, 14, 15, 16, 16, 17, 17,
? 3, 7, 7, 8, 8, 8, 8, 8,
? 8, 8, 9, 9, 10, 10, 10, 10,
? 10, 10, 11, 11, 11, 11, 12, 12,
? 12, 12, 13, 13, 13, 13, 15, 15,
? 16, 16, 17, 17, 18, 3, 11, 9,
? 12, 5, 9, 10, 10, 12, 14, 15,
? 21, 8, 8, 9, 11, 12, 22, 3,
? 6, 6, 7, 7, 7, 7,
? /* E6 */
? 7, 7, 7, 7, 7, 7, 8, 8,
? 8, 8, 9, 9, 9, 9, 9, 9,
? 9, 10, 10, 10, 10, 10, 10, 10,
? 10, 11, 11, 11, 11, 11, 11, 11,
? 12, 12, 12, 12, 13, 13, 13, 13,
? 13, 13, 14, 14, 14, 14, 14, 14,
? 14, 15, 16, 16, 17, 17, 20, 5,
? 9, 7, 8, 12, 3, 3, 8, 8,
? 8, 8, 8, 8, 8, 8, 9, 9,
? 9, 10, 11, 11, 11, 11, 12, 12,
? 13, 13, 13, 14, 14, 15, 19, 20,
? 3, 6, 6, 6, 6, 6,
? /* E7 */
? 7, 7, 7, 8, 8, 8, 8, 8,
? 8, 8, 9, 9, 9, 10, 10, 10,
? 11, 11, 11, 11, 11, 11, 11, 11,
? 11, 11, 11, 12, 12, 12, 12, 12,
? 12, 12, 12, 12, 12, 13, 13, 13,
? 13, 13, 13, 13, 13, 14, 14, 14,
? 14, 14, 15, 15, 15, 16, 16, 16,
? 16, 19, 3, 15, 3, 8, 10, 6,
? 6, 8, 8, 8, 9, 9, 9, 9,
? 9, 9, 9, 9, 10, 10, 10, 10,
? 10, 10, 10, 10, 10, 11, 12, 12,
? 12, 12, 12, 12, 12, 12,
? /* E8 */
? 12, 12, 13, 13, 13, 13, 13, 14,
? 14, 15, 15, 15, 15, 15, 15, 15,
? 16, 17, 17, 17, 18, 20, 20, 13,
? 13, 14, 7, 7, 7, 7, 7, 8,
? 8, 8, 8, 8, 8, 8, 8, 8,
? 8, 8, 8, 8, 9, 9, 9, 9,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 9, 9, 9, 9, 9, 9, 10,
? 10, 10, 10, 10, 10, 10, 10, 10,
? 10, 10, 10, 10, 10, 10, 10, 10,
? 10, 10, 11, 11, 11, 11, 11, 11,
? 11, 12, 12, 12, 12, 12,
? /* E9 */
? 12, 12, 12, 12, 12, 12, 12, 13,
? 13, 13, 13, 13, 13, 13, 13, 13,
? 13, 13, 13, 13, 13, 13, 13, 13,
? 13, 13, 14, 14, 14, 14, 14, 14,
? 14, 14, 14, 14, 14, 14, 14, 15,
? 15, 15, 15, 15, 15, 15, 15, 16,
? 16, 16, 16, 16, 16, 16, 16, 16,
? 16, 16, 17, 17, 17, 17, 18, 13,
? 14, 8, 9, 9, 9, 11, 11, 11,
? 12, 12, 14, 16, 7, 8, 9, 9,
? 9, 9, 9, 9, 9, 9, 9, 10,
? 10, 10, 10, 11, 12, 12,
? /* EA */
? 12, 12, 13, 15, 16, 10, 5, 8,
? 11, 12, 12, 13, 13, 13, 14, 14,
? 8, 9, 12, 16, 16, 17, 4, 6,
? 6, 7, 8, 8, 8, 8, 8, 8,
? 8, 9, 9, 9, 9, 9, 9, 10,
? 10, 10, 10, 10, 10, 11, 11, 12,
? 13, 13, 14, 14, 16, 18, 18, 20,
? 21, 9, 9, 9, 9, 10, 10, 10,
? 10, 11, 11, 11, 12, 12, 14, 9,
? 10, 11, 12, 13, 14, 15, 15, 9,
? 13, 6, 8, 9, 11, 11, 12, 12,
? 12, 13, 14, 10, 11, 12,
? /* EB */
? 14, 17, 10, 10, 12, 12, 12, 13,
? 15, 16, 16, 22, 5, 6, 7, 7,
? 9, 10, 10, 11, 13, 4, 11, 13,
? 12, 13, 15, 9, 15, 6, 7, 7,
? 7, 8, 8, 8, 8, 8, 8, 8,
? 8, 9, 9, 9, 9, 9, 9, 9,
? 9, 9, 9, 9, 9, 9, 10, 10,
? 10, 10, 10, 10, 10, 10, 10, 11,
? 11, 11, 11, 11, 11, 12, 12, 12,
? 12, 12, 12, 12, 13, 13, 13, 13,
? 13, 13, 13, 13, 14, 14, 14, 15,
? 15, 16, 17, 17, 17, 17,
? /* EC */
? 17, 16, 7, 11, 12, 13, 13, 16,
? 9, 9, 12, 13, 16, 16, 4, 13,
? 13, 17, 12, 15, 16, 8, 10, 10,
? 10, 11, 11, 13, 14, 7, 8, 8,
? 8, 9, 9, 9, 9, 9, 10, 10,
? 11, 11, 11, 12, 12, 13, 13, 13,
? 13, 13, 13, 13, 13, 14, 15, 15,
? 15, 15, 16, 16, 16, 18, 21, 30,
? 4, 11, 13, 16, 8, 8, 9, 11,
? 12, 4, 7, 8, 8, 9, 9, 9,
? 9, 9, 9, 9, 10, 10, 12, 12,
? 13, 14, 16, 21, 7, 7,
? /* ED */
? 9, 10, 10, 10, 10, 10, 10, 11,
? 13, 13, 14, 16, 16, 17, 17, 24,
? 4, 6, 8, 9, 12, 7, 8, 8,
? 9, 9, 9, 9, 9, 9, 9, 10,
? 10, 10, 10, 10, 10, 10, 10, 10,
? 10, 11, 11, 11, 11, 11, 11, 11,
? 11, 12, 13, 13, 13, 13, 13, 14,
? 14, 14, 14, 14, 15, 15, 15, 16,
? 16, 17, 17, 18, 19, 18, 21, 11,
? 12, 17, 19, 8, 9, 9, 9, 9,
? 9, 10, 10, 10, 11, 11, 11, 11,
? 12, 12, 12, 12, 13, 13,
? /* EE */
? 13, 13, 14, 14, 14, 14, 15, 15,
? 16, 16, 16, 17, 18, 7, 8, 9,
? 9, 9, 10, 12, 13, 17, 9, 10,
? 10, 12, 13, 14, 14, 16, 17, 17,
? 10, 16, 23, 5, 6, 6, 7, 7,
? 7, 8, 8, 8, 8, 8, 8, 9,
? 9, 9, 9, 9, 9, 9, 9, 9,
? 9, 10, 10, 10, 10, 10, 10, 10,
? 10, 10, 10, 10, 10, 10, 10, 10,
? 10, 10, 10, 10, 11, 11, 11, 11,
? 11, 11, 11, 11, 11, 11, 11, 11,
? 11, 11, 11, 11, 11, 11,
? /* EF */
? 11, 11, 11, 11, 11, 11, 11, 11,
? 12, 12, 12, 12, 12, 12, 12, 12,
? 12, 12, 12, 12, 12, 12, 12, 12,
? 12, 13, 13, 13, 13, 13, 13, 13,
? 13, 13, 13, 13, 13, 14, 14, 14,
? 14, 14, 14, 14, 14, 14, 14, 14,
? 14, 15, 15, 15, 15, 15, 15, 15,
? 15, 16, 16, 16, 16, 16, 16, 16,
? 16, 17, 17, 17, 17, 17, 17, 17,
? 17, 17, 17, 18, 18, 18, 19, 20,
? 14, 9, 12, 13, 9, 9, 10, 10,
? 11, 12, 12, 12, 13, 13,
? /* F0 */
? 15, 15, 16, 17, 18, 22, 9, 11,
? 12, 13, 17, 10, 11, 7, 7, 8,
? 9, 9, 10, 10, 10, 10, 10, 10,
? 11, 11, 11, 11, 11, 12, 12, 12,
? 12, 12, 12, 13, 13, 13, 13, 13,
? 14, 14, 14, 14, 14, 15, 15, 16,
? 16, 16, 17, 17, 17, 17, 18, 18,
? 22, 5, 7, 7, 8, 8, 9, 9,
? 10, 10, 10, 10, 10, 10, 10, 10,
? 11, 11, 12, 12, 12, 12, 12, 12,
? 13, 13, 13, 13, 13, 13, 13, 14,
? 14, 14, 14, 14, 14, 14,
? /* F1 */
? 15, 15, 15, 15, 16, 16, 16, 16,
? 16, 16, 16, 16, 17, 18, 18, 18,
? 18, 21, 23, 11, 12, 8, 8, 9,
? 9, 10, 11, 13, 13, 14, 14, 14,
? 15, 5, 8, 9, 9, 9, 9, 10,
? 11, 11, 11, 11, 12, 12, 12, 12,
? 13, 13, 13, 13, 13, 13, 14, 14,
? 14, 14, 14, 15, 15, 16, 17, 19,
? 24, 5, 9, 11, 12, 9, 6, 9,
? 10, 12, 12, 13, 14, 15, 15, 16,
? 16, 22, 12, 8, 11, 11, 11, 12,
? 15, 16, 12, 9, 10, 10,
? /* F2 */
? 12, 12, 12, 12, 13, 15, 15, 16,
? 16, 16, 18, 20, 21, 6, 10, 7,
? 8, 9, 9, 9, 9, 10, 10, 10,
? 10, 10, 10, 10, 10, 10, 10, 11,
? 11, 11, 11, 11, 11, 11, 11, 11,
? 11, 11, 12, 12, 12, 12, 12, 12,
? 12, 12, 12, 12, 12, 12, 13, 13,
? 13, 13, 13, 13, 13, 13, 14, 14,
? 14, 14, 14, 14, 14, 14, 14, 14,
? 14, 14, 14, 14, 15, 15, 15, 15,
? 15, 15, 15, 15, 15, 15, 15, 15,
? 15, 15, 16, 16, 16, 16,
? /* F3 */
? 16, 16, 16, 16, 16, 16, 17, 17,
? 17, 17, 17, 17, 17, 17, 17, 17,
? 17, 18, 18, 18, 18, 19, 19, 19,
? 19, 20, 21, 24, 26, 6, 14, 17,
? 17, 10, 8, 9, 9, 9, 10, 10,
? 10, 10, 10, 11, 11, 11, 11, 11,
? 11, 11, 11, 11, 11, 11, 11, 12,
? 12, 12, 12, 12, 12, 13, 13, 13,
? 13, 13, 13, 14, 14, 14, 14, 14,
? 14, 14, 14, 14, 14, 14, 14, 15,
? 15, 15, 15, 16, 16, 16, 16, 16,
? 17, 17, 17, 17, 17, 17,
? /* F4 */
? 18, 18, 18, 19, 19, 19, 8, 9,
? 11, 12, 10, 10, 9, 9, 9, 10,
? 10, 10, 10, 11, 11, 11, 11, 12,
? 13, 13, 14, 15, 17, 18, 19, 10,
? 10, 11, 13, 13, 19, 11, 11, 13,
? 15, 15, 16, 9, 10, 10, 11, 11,
? 12, 12, 13, 14, 14, 14, 15, 15,
? 15, 15, 15, 16, 18, 6, 15, 9,
? 11, 12, 14, 14, 15, 15, 16, 17,
? 6, 12, 14, 14, 17, 25, 11, 19,
? 9, 12, 13, 13, 23, 11, 15, 10,
? 11, 9, 10, 10, 10, 12,
? /* F5 */
? 12, 12, 13, 13, 13, 14, 14, 14,
? 14, 14, 15, 15, 16, 16, 16, 17,
? 17, 18, 19, 19, 19, 20, 20, 21,
? 7, 16, 10, 13, 14, 18, 18, 10,
? 10, 11, 11, 11, 12, 12, 12, 12,
? 12, 12, 12, 12, 13, 13, 13, 13,
? 13, 13, 13, 14, 14, 15, 15, 15,
? 15, 15, 15, 15, 15, 16, 16, 16,
? 16, 16, 16, 16, 16, 17, 17, 17,
? 19, 19, 19, 19, 19, 20, 21, 22,
? 22, 23, 24, 7, 12, 13, 13, 17,
? 17, 11, 11, 12, 12, 13,
? /* F6 */
? 13, 14, 15, 13, 18, 12, 11, 12,
? 12, 14, 14, 16, 16, 16, 19, 19,
? 20, 22, 10, 13, 13, 13, 14, 14,
? 15, 15, 17, 8, 12, 20, 8, 10,
? 10, 13, 14, 18, 18, 14, 14, 15,
? 16, 17, 18, 18, 21, 24, 12, 12,
? 13, 13, 13, 13, 13, 13, 13, 13,
? 14, 14, 14, 14, 14, 14, 14, 14,
? 15, 15, 15, 15, 15, 15, 15, 15,
? 15, 15, 16, 16, 16, 16, 16, 16,
? 16, 16, 16, 16, 16, 16, 17, 17,
? 17, 17, 17, 17, 17, 17,
? /* F7 */
? 18, 18, 18, 18, 18, 19, 19, 19,
? 19, 19, 19, 20, 20, 20, 21, 14,
? 14, 15, 15, 16, 18, 18, 18, 19,
? 19, 13, 13, 14, 14, 14, 15, 15,
? 17, 17, 18, 18, 19, 19, 22, 14,
? 14, 15, 16, 16, 17, 19, 12, 15,
? 18, 22, 22, 10, 13, 14, 15, 15,
? 16, 16, 16, 18, 19, 20, 23, 25,
? 14, 15, 17, 13, 16, 16, 17, 19,
? 19, 21, 23, 17, 17, 17, 18, 18,
? 19, 20, 20, 20, 20, 21, 17, 18,
? 20, 23, 23, 16, 17, 23,
? /* F8 */
? }
}