⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hangul.c

📁 手机韩语输入法源码 朝鲜语字母与手机键盘之间的对应
💻 C
📖 第 1 页 / 共 4 页
字号:
/*
    Hangul routines

    written by Song Jaekyung
*/

//#include "ptyx.h"
//#include "data.h"
#include "hangul.h"
#include <stdio.h>

/* fuzzy baselibe stuff. defined in charproc.c */
extern int englift;
extern int eng_ascent;
extern int eng_descent;

#if !defined(NO_PATCH_FONT_JOHABNZ) /* by hanmaum 1998.2.2 */
extern int font_no_zero_width_char;
extern int font_minus_width_char_byte1;
extern int font_minus_width_char_byte2;
#endif


extern int convert_3_to_johab();
#if !defined(NO_PATCH_UTF8) /* by hanmaum 1998.2.5 */
#include "ksc.h"
extern int convert_3_to_utf8();
unsigned short convert_char_ksc5601_to_ucs2(/*byte1, byte2*/);
unsigned short convert_char_ucs2_to_ksc5601(/*code_ucs2*/);
int convert_wc_to_mb(/*char *s, unsigned long wc*/);
int convert_mb_to_wc(/*unsigned long *p, char *s, unsigned n*/);
#endif

int convert_3_to_jo844();
extern int (*converter)();
extern int (*chat_callback)();
extern int v_write();
code_input(fd, str, len)
    int fd;
    unsigned char *str;
    int len;
{
    int code = 0;
    char buf[2];

    sscanf((char*)str+9, "%x", &code);
    if (code >= 0xa1a1 && code <= 0xfefe) {
	buf[0] = code >> 8;
	buf[1] = code & 0xff;
	// jwf v_write(fd, buf, 2);
    }
    return -1;
}


#if !defined(NO_PATCH_ADJUSTHANGULSTRING) /* by hanmaum 1998.2.6 */
/* str + n - 1 困摹 付瘤阜 臂磊啊 固肯己矫 内靛辨捞甫 逞败霖促. */
adjust_hangul_string(str, n, code)
register unsigned char *str;
register int n;			/* length of string */
register int code;
#else
/* str + n - 1 俊 乐绰 某腐磐啊 茄臂狼 霉锅掳 官捞飘搁 1 阑 倒妨凛聪促. */
adjust_hangul_string(str, n)
register unsigned char *str;
register int n;			/* length of string */
#endif
{
#if !defined(NO_PATCH_UTF8) /* by hanmaum 1998.2.5 */
    if (code == C_UTF8) {
	int l = 0;
	while (n > 0) {
	    if (*str < (unsigned char)0xc0) l = 1;
	    else if (*str < (unsigned char)0xe0) l = 2;
	    else if (*str < (unsigned char)0xf0) l = 3;
	    else if (*str < (unsigned char)0xf8) l = 4;
	    else if (*str < (unsigned char)0xfc) l = 5;
	    else l = 6;

	    n -= l;
	    str += l;
	}
	return (n == 0) ? 0 : (l + n);
    }
    else 
#endif
    {
	while (n > 0) {
	    if (*str & 0x80) {
		str += 2;
		n -= 2;
	    } else {
		str += 1;
		n -= 1;
	    }
	}
	return (n != 0);
    }
}

#if !defined(NO_PATCH_ADJUSTHANGULSTRING) /* by hanmaum 1998.2.4 */
int get_hangul_coding_length(str, n, maxlen_scr, code)
unsigned char *str;
int n;
int maxlen_scr;
int code;
{
    int len_code = 0;
    int l = 0;

#if !defined(NO_PATCH_UTF8) /* by hanmaum 1998.2.5 */
    if (code == C_UTF8) {
	int len_scr = 0;
	int len_scr1;

	while (n > 0) {
	    len_scr1 = 2;
	    if (*str < (unsigned char)0xc0) l = 1, len_scr1 = 1;
	    else if (*str < (unsigned char)0xe0) l = 2;
	    else if (*str < (unsigned char)0xf0) l = 3;
	    else if (*str < (unsigned char)0xf8) l = 4;
	    else if (*str < (unsigned char)0xfc) l = 5;
	    else l = 6;

	    maxlen_scr -= len_scr1;
	    len_code += l;
	    if (maxlen_scr <= 0) return len_code;
	    n -= l;
	    str += l;
	}
	return len_code;
    }
    else 
#endif
    {
	while (n > 0) {
	    if (*str & 0x80) {
		str += 2;
		l = 2;
		n -= 2;
	    } else {
		str += 1;
		l = 1;
		n -= 1;
	    }
	    maxlen_scr -= l;
	    len_code += l;
	    if (maxlen_scr <= 0) return len_code;
	}
	return len_code;
    }
}

int get_hangul_screen_length(str, n, code)
unsigned char *str;
int n;
int code;
{
    int len_scr = 0;
    int len_scr1;

#if !defined(NO_PATCH_UTF8) /* by hanmaum 1998.2.5 */
    if (code == C_UTF8) {
	int l = 0;
	while (n > 0) {
	    len_scr1 = 2;
	    if (*str < (unsigned char)0xc0) l = 1, len_scr1 = 1;
	    else if (*str < (unsigned char)0xe0) l = 2;
	    else if (*str < (unsigned char)0xf0) l = 3;
	    else if (*str < (unsigned char)0xf8) l = 4;
	    else if (*str < (unsigned char)0xfc) l = 5;
	    else l = 6;

	    n -= l;
	    str += l;
	    len_scr += len_scr1;
	}
	return len_scr;
    }
    else 
#endif
    {
	while (n > 0) {
	    if (*str & 0x80) {
		str += 2;
		n -= 2;
		len_scr1 = 2;
	    } else {
		str += 1;
		n -= 1;
		len_scr1 = 1;
	    }
	    len_scr += len_scr1;
	}
	return len_scr;
    }
}
#endif




#define ks_table1_index(h, l)	(((h)-0xb0)*(0xff-0xa1)+((l)-0xa1))

static unsigned char ks_table1[][3] = {
   2,  3,  1,   2,  3,  2,   2,  3,  5,   2,  3,  8,
   2,  3,  9,   2,  3, 10,   2,  3, 11,   2,  3, 17,
   2,  3, 19,   2,  3, 20,   2,  3, 21,   2,  3, 22,
   2,  3, 23,   2,  3, 24,   2,  3, 25,   2,  3, 27,
   2,  3, 28,   2,  3, 29,   2,  4,  1,   2,  4,  2,
   2,  4,  5,   2,  4,  9,   2,  4, 17,   2,  4, 19,
   2,  4, 21,   2,  4, 22,   2,  4, 23,   2,  5,  1,
   2,  5,  2,   2,  5,  5,   2,  5,  9,   2,  5, 21,
   2,  5, 23,   2,  6,  1,   2,  6,  5,   2,  6,  9,
   2,  7,  1,   2,  7,  2,   2,  7,  5,   2,  7,  8,
   2,  7,  9,   2,  7, 11,   2,  7, 17,   2,  7, 19,
   2,  7, 21,   2,  7, 22,   2,  7, 23,   2,  7, 24,
   2,  7, 27,   2,  7, 28,   2,  7, 29,   2, 10,  1,
   2, 10,  5,   2, 10,  9,   2, 10, 17,   2, 10, 19,
   2, 10, 21,   2, 10, 22,   2, 10, 23,   2, 11,  1,
   2, 11,  2,   2, 11,  3,   2, 11,  5,   2, 11,  8,
   2, 11,  9,   2, 11, 17,   2, 11, 19,   2, 11, 21,
   2, 11, 22,   2, 11, 23,   2, 11, 27,   2, 12,  1,
   2, 12,  5,   2, 12,  9,   2, 12, 19,   2, 12, 21,
   2, 13,  1,   2, 13,  2,   2, 13,  5,   2, 13,  8,
   2, 13,  9,   2, 13, 11,   2, 13, 13,   2, 13, 16,
   2, 13, 17,   2, 13, 19,   2, 13, 21,   2, 13, 23,
   2, 13, 24,   2, 14,  1,   2, 14,  2,   2, 14,  5,
   2, 14,  9,   2, 14, 11,   2, 14, 17,   2, 14, 19,
   2, 14, 21,   2, 14, 23,   2, 15,  1,   2, 15,  5,
   2, 15,  9,   2, 15, 19,   2, 15, 22,   2, 15, 23,
   2, 18,  1,   2, 18,  2,   2, 18,  5,   2, 18,  9,
   2, 18, 17,   2, 18, 19,   2, 18, 21,   2, 18, 23,
   2, 19,  1,   2, 19,  5,   2, 19,  9,   2, 19, 19,
   2, 19, 21,   2, 20,  1,   2, 20,  2,   2, 20,  5,
   2, 20,  8,   2, 20,  9,   2, 20, 10,   2, 20, 11,
   2, 20, 16,   2, 20, 17,   2, 20, 19,   2, 20, 21,
   2, 20, 23,   2, 20, 24,   2, 21,  1,   2, 21,  2,
   2, 21,  5,   2, 21,  9,   2, 21, 22,   2, 21, 23,
   2, 22,  1,   2, 22, 21,   2, 23,  1,   2, 23,  2,
   2, 23,  5,   2, 23,  9,   2, 23, 17,   2, 23, 19,
   2, 23, 21,   2, 26,  1,   2, 26,  5,   2, 26,  9,
   2, 27,  1,   2, 27,  2,   2, 27,  5,   2, 27,  8,
   2, 27,  9,   2, 27, 10,   2, 27, 17,   2, 27, 19,
   2, 27, 21,   2, 27, 23,   2, 28,  1,   2, 29,  1,
   2, 29,  2,   2, 29,  5,   2, 29,  8,   2, 29,  9,
   2, 29, 11,   2, 29, 17,   2, 29, 19,   2, 29, 21,
   2, 29, 23,   2, 29, 24,   2, 29, 28,   3,  3,  1,
   3,  3,  2,   3,  3,  3,   3,  3,  5,   3,  3,  9,
   3,  3, 11,   3,  3, 17,   3,  3, 19,   3,  3, 21,
   3,  3, 22,   3,  3, 23,   3,  3, 27,   3,  4,  1,
   3,  4,  2,   3,  4,  5,   3,  4,  9,   3,  4, 17,
   3,  4, 19,   3,  4, 21,   3,  4, 22,   3,  4, 23,
   3,  5,  1,   3,  5,  2,   3,  5,  9,   3,  7,  1,
   3,  7,  2,   3,  7,  3,   3,  7,  5,   3,  7,  9,
   3,  7, 17,   3,  7, 19,   3,  7, 21,   3,  7, 22,
   3,  7, 23,   3, 10,  1,   3, 10,  2,   3, 10,  5,
   3, 10, 17,   3, 10, 21,   3, 10, 23,   3, 11,  1,
   3, 11,  5,   3, 11,  9,   3, 11, 21,   3, 11, 22,
   3, 11, 27,   3, 12,  1,   3, 13,  1,   3, 13,  2,
   3, 13,  5,   3, 13,  7,   3, 13,  9,   3, 13, 17,
   3, 13, 19,   3, 13, 21,   3, 13, 23,   3, 13, 24,
   3, 13, 25,   3, 14,  1,   3, 14,  2,   3, 14,  9,
   3, 14, 22,   3, 14, 23,   3, 15,  1,   3, 15,  2,
   3, 15, 23,   3, 18,  1,   3, 18,  5,   3, 18,  9,
   3, 18, 17,   3, 18, 19,   3, 18, 23,   3, 19,  1,
   3, 20,  1,   3, 20,  2,   3, 20,  5,   3, 20,  9,
   3, 20, 16,   3, 20, 17,   3, 20, 19,   3, 20, 21,
   3, 20, 23,   3, 20, 24,   3, 21,  1,   3, 21,  9,
   3, 21, 22,   3, 21, 23,   3, 22,  1,   3, 22,  2,
   3, 22,  5,   3, 22,  9,   3, 22, 17,   3, 22, 19,
   3, 22, 22,   3, 23,  1,   3, 23,  5,   3, 23,  9,
   3, 23, 17,   3, 23, 19,   3, 26,  1,   3, 27,  1,
   3, 27,  2,   3, 27,  5,   3, 27,  7,   3, 27,  9,
   3, 27, 11,   3, 27, 16,   3, 27, 17,   3, 27, 19,
   3, 27, 21,   3, 27, 23,   3, 27, 27,   3, 29,  1,
   3, 29,  2,   3, 29,  5,   3, 29,  9,   3, 29, 17,
   3, 29, 19,   3, 29, 21,   3, 29, 23,   4,  3,  1,
   4,  3,  2,   4,  3,  3,   4,  3,  5,   4,  3,  8,
   4,  3,  9,   4,  3, 10,   4,  3, 11,   4,  3, 17,
   4,  3, 19,   4,  3, 21,   4,  3, 22,   4,  3, 23,
   4,  3, 24,   4,  3, 25,   4,  3, 27,   4,  3, 29,
   4,  4,  1,   4,  4,  2,   4,  4,  5,   4,  4,  9,
   4,  4, 17,   4,  4, 19,   4,  4, 21,   4,  4, 22,
   4,  4, 23,   4,  5,  1,   4,  5,  2,   4,  5,  5,
   4,  5,  9,   4,  5, 17,   4,  5, 23,   4,  7,  1,
   4,  7,  2,   4,  7,  4,   4,  7,  5,   4,  7,  9,
   4,  7, 11,   4,  7, 12,   4,  7, 17,   4,  7, 19,
   4,  7, 21,   4,  7, 22,   4,  7, 23,   4,  7, 29,
   4, 10,  1,   4, 10,  2,   4, 10,  5,   4, 10,  9,
   4, 10, 17,   4, 10, 19,   4, 10, 21,   4, 10, 22,
   4, 10, 23,   4, 11,  1,   4, 11,  2,   4, 11,  5,
   4, 11,  9,   4, 11, 17,   4, 11, 19,   4, 11, 22,
   4, 11, 23,   4, 11, 26,   4, 12,  1,   4, 12,  5,
   4, 13,  1,   4, 13,  2,   4, 13,  5,   4, 13,  9,
   4, 13, 11,   4, 13, 17,   4, 13, 19,   4, 13, 21,
   4, 13, 23,   4, 13, 28,   4, 13, 29,   4, 14,  1,
   4, 14,  5,   4, 14,  9,   4, 14, 22,   4, 18,  1,
   4, 18,  5,   4, 18,  9,   4, 18, 17,   4, 18, 19,
   4, 18, 21,   4, 19,  1,   4, 19,  2,   4, 19,  5,
   4, 19,  9,   4, 19, 19,   4, 19, 21,   4, 19, 23,
   4, 20,  1,   4, 20,  2,   4, 20,  5,   4, 20,  8,
   4, 20,  9,   4, 20, 17,   4, 20, 19,   4, 20, 21,
   4, 20, 23,   4, 21,  1,   4, 21, 22,   4, 22,  1,
   4, 23,  1,   4, 23,  5,   4, 23,  9,   4, 23, 17,
   4, 23, 19,   4, 26,  1,   4, 26,  2,   4, 26,  9,
   4, 26, 17,   4, 26, 19,   4, 26, 23,   4, 27,  1,
   4, 27,  2,   4, 27,  5,   4, 27,  9,   4, 27, 10,
   4, 27, 11,   4, 27, 17,   4, 27, 19,   4, 27, 21,
   4, 27, 23,   4, 27, 24,   4, 27, 28,   4, 28,  1,
   4, 28,  5,   4, 28,  9,   4, 29,  1,   4, 29,  2,
   4, 29,  5,   4, 29,  9,   4, 29, 11,   4, 29, 17,
   4, 29, 19,   4, 29, 21,   4, 29, 23,   4, 29, 28,
   5,  3,  1,   5,  3,  2,   5,  3,  3,   5,  3,  5,
   5,  3,  8,   5,  3,  9,   5,  3, 10,   5,  3, 11,
   5,  3, 12,   5,  3, 16,   5,  3, 17,   5,  3, 19,
   5,  3, 21,   5,  3, 22,   5,  3, 23,   5,  3, 24,
   5,  3, 25,   5,  3, 29,   5,  4,  1,   5,  4,  2,
   5,  4,  5,   5,  4,  9,   5,  4, 17,   5,  4, 19,
   5,  4, 21,   5,  4, 22,   5,  4, 23,   5,  5,  1,
   5,  7,  1,   5,  7,  2,   5,  7,  3,   5,  7,  5,
   5,  7,  8,   5,  7,  9,   5,  7, 11,   5,  7, 12,
   5,  7, 17,   5,  7, 19,   5,  7, 21,   5,  7, 23,
   5,  7, 25,   5,  7, 28,   5, 10,  1,   5, 10,  2,
   5, 10,  5,   5, 10,  9,   5, 10, 17,   5, 10, 19,
   5, 10, 21,   5, 10, 22,   5, 10, 23,   5, 11,  1,
   5, 11,  5,   5, 11,  9,   5, 11, 22,   5, 11, 23,
   5, 12,  1,   5, 12,  5,   5, 13,  1,   5, 13,  2,
   5, 13,  5,   5, 13,  8,   5, 13,  9,   5, 13, 11,
   5, 13, 13,   5, 13, 17,   5, 13, 19,   5, 13, 21,
   5, 13, 23,   5, 13, 25,   5, 13, 27,   5, 14,  1,
   5, 14,  5,   5, 14,  9,   5, 15,  1,   5, 15, 22,
   5, 18,  1,   5, 18,  5,   5, 18,  9,   5, 18, 17,
   5, 18, 19,   5, 18, 21,   5, 19,  1,   5, 20,  1,
   5, 20,  2,   5, 20,  5,   5, 20,  9,   5, 20, 17,
   5, 20, 19,   5, 20, 21,   5, 20, 23,   5, 21,  1,
   5, 21, 22,   5, 22,  1,   5, 22, 23,   5, 23,  1,
   5, 23,  5,   5, 23,  9,   5, 23, 19,   5, 23, 21,
   5, 23, 23,   5, 26,  1,   5, 26,  5,   5, 26,  9,
   5, 26, 17,   5, 26, 23,   5, 27,  1,   5, 27,  2,
   5, 27,  5,   5, 27,  8,   5, 27,  9,   5, 27, 11,
   5, 27, 17,   5, 27, 19,   5, 27, 21,   5, 27, 23,
   5, 28,  1,   5, 29,  1,   5, 29,  2,   5, 29,  5,
   5, 29,  8,   5, 29,  9,   5, 29, 17,   5, 29, 19,
   5, 29, 21,   5, 29, 22,   5, 29, 23,   5, 29, 24,
   6,  3,  1,   6,  3,  2,   6,  3,  5,   6,  3,  9,
   6,  3, 17,   6,  3, 19,   6,  3, 21,   6,  3, 22,
   6,  3, 23,   6,  3, 29,   6,  4,  1,   6,  4,  2,
   6,  4,  5,   6,  4,  9,   6,  4, 17,   6,  4, 19,
   6,  4, 21,   6,  4, 22,   6,  4, 23,   6,  7,  1,
   6,  7,  2,   6,  7,  5,   6,  7,  9,   6,  7, 11,
   6,  7, 12,   6,  7, 17,   6,  7, 19,   6,  7, 21,
   6,  7, 22,   6,  7, 23,   6,  7, 29,   6, 10,  1,
   6, 10,  2,   6, 10,  5,   6, 10,  9,   6, 10, 17,
   6, 10, 19,   6, 10, 21,   6, 10, 22,   6, 10, 23,
   6, 11,  1,   6, 11, 22,   6, 13,  1,   6, 13,  2,
   6, 13,  5,   6, 13,  9,   6, 13, 23,   6, 14,  1,
   6, 14,  9,   6, 15,  1,   6, 18,  1,   6, 18,  5,
   6, 20,  1,   6, 20,  2,   6, 20,  5,   6, 20,  9,
   6, 20, 16,   6, 20, 17,   6, 20, 23,   6, 22,  1,
   6, 23,  1,   6, 23,  5,   6, 23,  9,   6, 23, 17,
   6, 23, 19,   6, 23, 23,   6, 27,  1,   6, 27,  2,
   6, 27,  5,   6, 27,  8,   6, 27,  9,   6, 27, 17,
   6, 27, 19,   6, 27, 21,   6, 28,  1,   6, 28,  5,
   6, 28,  9,   6, 28, 17,   6, 28, 19,   6, 29,  1,
   6, 29,  5,   6, 29,  9,   6, 29, 17,   6, 29, 19,
   6, 29, 21,   6, 29, 23,   7,  3,  1,   7,  3,  2,
   7,  3,  5,   7,  3,  9,   7,  3, 17,   7,  3, 19,
   7,  3, 21,   7,  3, 22,   7,  3, 23,   7,  3, 24,
   7,  3, 28,   7,  3, 29,   7,  4,  1,   7,  4,  2,
   7,  4,  5,   7,  4,  9,   7,  4, 17,   7,  4, 19,
   7,  4, 21,   7,  4, 22,   7,  4, 23,   7,  5,  1,
   7,  5,  2,   7,  5,  5,   7,  5, 21,   7,  5, 23,
   7,  7,  1,   7,  7,  2,   7,  7,  5,   7,  7,  9,
   7,  7, 17,   7,  7, 19,   7,  7, 21,   7,  7, 22,
   7,  7, 23,   7,  7, 29,   7, 10,  1,   7, 10,  2,
   7, 10,  5,   7, 10,  9,   7, 10, 17,   7, 10, 19,
   7, 10, 21,   7, 10, 23,   7, 11,  1,   7, 11,  2,
   7, 11,  5,   7, 11,  9,   7, 11, 17,   7, 11, 19,
   7, 11, 21,   7, 11, 22,   7, 11, 23,   7, 12,  1,
   7, 12,  5,   7, 12, 19,   7, 12, 21,   7, 13,  1,
   7, 13,  2,   7, 13,  5,   7, 13,  9,   7, 13, 17,
   7, 13, 19,   7, 13, 21,   7, 13, 23,   7, 14,  1,
   7, 14,  5,   7, 14, 23,   7, 15, 22,   7, 18,  1,
   7, 18,  5,   7, 18,  9,   7, 18, 17,   7, 18, 19,
   7, 18, 21,   7, 18, 23,   7, 19,  1,   7, 19,  5,
   7, 19,  9,   7, 19, 19,   7, 19, 21,   7, 19, 23,
   7, 20,  1,   7, 20,  2,   7, 20,  5,   7, 20,  9,
   7, 20, 17,   7, 20, 19,   7, 20, 21,   7, 20, 23,
   7, 21,  1,   7, 21, 22,   7, 22,  1,   7, 23,  1,
   7, 23,  2,   7, 23,  5,   7, 23,  9,   7, 23, 17,
   7, 23, 21,   7, 23, 23,   7, 26,  1,   7, 26,  2,
   7, 26,  5,   7, 26,  9,   7, 26, 17,   7, 26, 19,
   7, 26, 21,   7, 26, 23,   7, 27,  1,   7, 27,  2,
   7, 27,  5,   7, 27,  9,   7, 27, 17,   7, 27, 19,
   7, 27, 21,   7, 27, 23,   7, 27, 24,   7, 27, 27,
   7, 27, 28,   7, 29,  1,   7, 29,  2,   7, 29,  5,
   7, 29,  9,   7, 29, 17,   7, 29, 19,   7, 29, 21,
   7, 29, 23,   8,  3,  1,   8,  3,  2,   8,  3,  5,
   8,  3,  7,   8,  3,  8,   8,  3,  9,   8,  3, 10,
   8,  3, 11,   8,  3, 17,   8,  3, 19,   8,  3, 21,
   8,  3, 23,   8,  3, 24,   8,  3, 27,   8,  3, 29,
   8,  4,  1,   8,  4,  2,   8,  4,  5,   8,  4,  9,
   8,  4, 17,   8,  4, 19,   8,  4, 21,   8,  4, 22,
   8,  4, 23,   8,  4, 24,   8,  5,  1,   8,  5,  2,
   8,  5,  9,   8,  5, 23,   8,  7,  1,   8,  7,  2,
   8,  7,  5,   8,  7,  9,   8,  7, 11,   8,  7, 17,
   8,  7, 19,   8,  7, 21,   8,  7, 23,   8,  7, 24,
   8,  7, 29,   8, 10,  1,   8, 10,  2,   8, 10,  5,
   8, 10,  9,   8, 10, 17,   8, 10, 19,   8, 10, 21,
   8, 10, 22,   8, 10, 23,   8, 11,  1,   8, 11,  2,
   8, 11,  5,   8, 11,  9,   8, 11, 21,   8, 11, 22,
   8, 11, 23,   8, 11, 25,   8, 12,  1,   8, 13,  1,
   8, 13,  2,   8, 13,  4,   8, 13,  5,   8, 13,  9,
   8, 13, 11,   8, 13, 17,   8, 13, 19,   8, 13, 21,
   8, 13, 23,   8, 14,  1,   8, 14,  5,   8, 14, 22,
   8, 14, 23,   8, 18,  1,   8, 18,  5,   8, 18,  9,
   8, 18, 19,   8, 18, 21,   8, 18, 23,   8, 19,  1,
   8, 19,  5,   8, 19,  9,   8, 19, 19,   8, 19, 21,
   8, 20,  1,   8, 20,  2,   8, 20,  3,   8, 20,  5,
   8, 20,  8,   8, 20,  9,   8, 20, 10,   8, 20, 11,
   8, 20, 17,   8, 20, 19,   8, 20, 21,   8, 20, 23,
   8, 20, 27,   8, 20, 29,   8, 21,  1,   8, 21,  5,
   8, 21,  9,   8, 21, 19,   8, 21, 21,   8, 22,  1,
   8, 23,  1,   8, 23,  5,   8, 23,  9,   8, 26,  1,
   8, 26,  5,   8, 26,  9,   8, 26, 17,   8, 26, 21,
   8, 27,  1,   8, 27,  5,   8, 27,  9,   8, 27, 17,
   8, 27, 21,   8, 29,  1,   8, 29,  2,   8, 29,  5,
   8, 29,  8,   8, 29,  9,   8, 29, 11,   8, 29, 17,
   8, 29, 19,   8, 29, 21,   8, 29, 22,   8, 29, 23,
   8, 29, 25,   8, 29, 27,   9,  3,  1,   9,  3,  2,
   9,  3,  3,   9,  3,  4,   9,  3,  5,   9,  3,  8,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -