ebook2cw/codetables.h

553 lines
18 KiB
C
Raw Blame History

/*
* ISO 8859-1 and UTF-8 to Morse code mappings
* This file is part of ebook2cw and may be used under the same terms (GPL)
* (C) 2008-2022 Fabian Kurz, DJ5CW
*
* Currently included: ISO 8859-1
* - complete (all that can somehow be mapped)
* Unicode:
* - Latin (basic, some extended)
* - Cyrillic alphabet (KOI-7 + Serbian, Macedonian.. )
* - Greek
* - Hebrew
*
* Any comments, additions or corrections are welcome: fabian@fkurz.net
*
*/
const static char *iso8859[] = {
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
" ", /* space */
"..--.", /* ! */
".-..-.", /* " */
NULL, /* # */
"...-..-", /* $ */
NULL, /* % */
". ...", /* & */
".----.", /* ' */
"-.--.", /* ( */
"-.--.-", /* ) */
NULL, /* * */
".-.-.", /* + */
"--..--", /* , */
"-....-", /* - */
".-.-.-", /* . */
"-..-.", /* / */
"-----", /* 0 */
".----", /* 1 */
"..---", /* 2 */
"...--", /* 3 */
"....-", /* 4 */
".....", /* 5 */
"-....", /* 6 */
"--...", /* 7 */
"---..", /* 8 */
"----.", /* 9 */
"---...", /* : */
"-.-.-.", /* ; */
NULL, /* < */
"-...-", /* = */
NULL, /* < */
"..--..", /* ? */
".--.-.", /* @ */
".-", /* A */
"-...", /* B */
"-.-.",
"-..",
".",
"..-.",
"--.",
"....",
"..",
".---",
"-.-",
".-..",
"--",
"-.",
"---",
".--.",
"--.-",
".-.",
"...",
"-",
"..-",
"...-",
".--",
"-..-",
"-.--",
"--..", /* Z */
NULL, /* [ */
"-..-.", /* \ */
NULL, /* ] */
NULL, /* ^ */
NULL, /* _ */
".----.", /* ` */
".-", /* a */
"-...", /* b */
"-.-.",
"-..",
".",
"..-.",
"--.",
"....",
"..",
".---",
"-.-",
".-..",
"--",
"-.",
"---",
".--.",
"--.-",
".-.",
"...",
"-",
"..-",
"...-",
".--",
"-..-",
"-.--",
"--..", /* z */
NULL, /* { */
NULL, /* | */
NULL, /* } */
NULL, /* ~ */
NULL, /* DEL */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL,
".-..-.", /* <20> (angle quotes, <<, 171) */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
".-..-.", /* <20> (angle quotes, >>, 187) */
NULL, NULL, NULL, NULL,
".--.-", /* `A */
".--.-", /* 'A */
".-", /* ^A */
".-", /* ~A */
".-.-", /* "A */
".--.-", /* <20>A */
".-.-", /* AE */
"-.-..", /* ,C */
"..-..", /* `E */
"..-..", /* 'E */
".", /* ^E */
".", /* "E */
"..", /* `I */
"..", /* 'I */
"..", /* ^I */
"..", /* "I */
"..--.", /* -D */
"--.--", /* ~N */
"---", /* `O */
"---", /* 'O */
"---", /* ^O */
"---", /* ~O */
"---.", /* "O */
NULL, /* x */
"---.", /* /O */
"..-", /* `U */
"..-", /* 'U */
"..-", /* ^U */
"..--", /* "U */
"-.--", /* 'Y */
".--..", /* 'thorn' */
"...--..", /* sz */
".--.-", /* `a */
".--.-", /* 'a */
".-", /* ^a */
".-", /* ~a */
".-.-", /* "a */
".--.-", /* <20>a */
".-.-", /* ae */
"-.-..", /* ,c */
"..-..", /* `e */
"..-..", /* 'e */
".", /* ^e */
".", /* "e */
".---.", /* `i */
"..", /* 'i */
"..", /* ^i */
"..", /* "i */
"..--.", /* -d */
"--.--", /* ~n */
"---", /* `o */
"---", /* 'o */
"---", /* ^o */
"---", /* ~o */
"---.", /* "o */
NULL, /* ./. */
"---.", /* /o */
"..-", /* `u */
"..-", /* 'u */
"..-", /* ^u */
"..--", /* "u */
"-.--", /* 'y */
".--..", /* 'thorn' */
"-.--" /* "y */
};
const static char *utf8table[] = {
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* first 128 are identical*/
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* to iso8859, so that */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* will be used instead */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* - 127 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* control characters ...*/
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* -159 */
" ", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, ".-..-.", NULL, NULL, NULL, NULL, /* 171 << */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, ".-..-.", NULL, NULL, NULL, NULL, /* 187 >> */
/* same as in ISO8859 */
".--.-", /* `A */ /* 192 ... */
".--.-", /* 'A */
".-", /* ^A */
".-", /* ~A */
".-.-", /* "A */
".--.-", /* <20>A */
".-.-", /* AE */
"-.-..", /* ,C */
"..-..", /* `E */
"..-..", /* 'E */
".", /* ^E */
".", /* "E */
"..", /* `I */
"..", /* 'I */
"..", /* ^I */
"..", /* "I */
"..--.", /* -D according to Wikipedia */
"--.--", /* ~N */
"---", /* `O */
"---", /* 'O */
"---", /* ^O */
"---", /* ~O */
"---.", /* "O */
NULL, /* x */
"---.", /* /O */
"..-", /* `U */
"..-", /* 'U */
"..-", /* ^U */
"..--", /* "U */
"-.--", /* 'Y */
".--..", /* 'thorn', acc to Wikipedia */
"...--..", /* sz */
".--.-", /* `a */
".--.-", /* 'a */
".-", /* ^a */
".-", /* ~a */
".-.-", /* "a */
".--.-", /* <20>a */
".-.-", /* ae */
"-.-..", /* ,c */
"..-..", /* `e */
"..-..", /* 'e */
".", /* ^e */
".", /* "e */
".---.", /* `i */
"..", /* 'i */
"..", /* ^i */
"..", /* "i */
"..--.", /* -d Wiki */
"--.--", /* ~n */
"---", /* `o */
"---", /* 'o */
"---", /* ^o */
"---", /* ~o */
"---.", /* "o */
NULL, /* ./. */
"---.", /* /o */
"..-", /* `u */
"..-", /* 'u */
"..-", /* ^u */
"..--", /* "u */
"-.--", /* 'y */
".--..", /* 'thorn' */
"-.--", /* "y */ /* 255 */
".-", ".-", ".-", ".-", ".-", ".-", /* 256-261, As with different hats */
/* 262-269 Cs with different hats */
/* 264-265 -.-.. acc. to Wikipedia, Esperanto etc. */
"-.-.", "-.-.", "-.-..", "-.-..", "-.-.", "-.-.", "-.-.", "-.-.",
"-..", "-..", "-..", "-..", /* 270-273 Ds with different stuff */
/* 274-283 different Es */
".", ".", ".", ".", ".", ".", ".", ".", ".", ".",
/* 284-291 different Gs, first 2 according to Wikipedia (Esperanto) */
"--.-.", "--.-.", "--.", "--.", "--.", "--.", "--.", "--.",
/* 292-295 different Hs, first two Esperanto (was: -.--. before, but was
* changed: "Originale, Hx estis -.--. sed tio kolizie estas "(" en ITU-T
* F.1, do Hx nun prefere estas ----") */
"----", "----", "....", "....",
/* 296-305 different Is */
"..", "..", "..", "..", "..", "..", "..", "..", "..", "..",
/* 306-307 IJ ligatures */
".. .---", ".. .---",
/* 308-309 Js, from Wikipedia, Esperanto */
".---.", ".---.",
/* 310-312 Ks */
"-.-", "-.-", "-.-",
/* 313-322 different Ls */
".-..", ".-..", ".-..", ".-..", ".-..", ".-..", ".-..",
".-..", ".-..", ".-..",
/* 323-331 different Ns */
"-.", "-.", "-.", "-.", "-.", "-.", "-.", "-.", "-.",
/* 332-337 Os */
"---", "---", "---", "---", "---", "---",
/* 338-339 OEs */
"---.", "---.",
/* 340-345 Rs */
".-.", ".-.", ".-.", ".-.", ".-.", ".-.",
/* 346-353 Ss, Wikipedia */
"...", "...", "...-.", "...-.", "...", "...", "...", "...",
/* 354-359 Ts */
"-", "-", "-", "-", "-", "-",
/* 360-371 Us, 364. 365 Esperanto */
"..-", "..-", "..-", "..-", "..--", "..--", "..-", "..-", "..-",
"..-", "..-", "..-",
/* 372-373 Ws */
".--", ".--",
/* 374-377 Ys */
"-.--", "-.--", "-.--",
/* 377-382 Zs */
"--..", "--..", "--..", "--..", "--..", "--..",
/* 383 S */
"...",
/* 384-389 Bs */
"-...", "-...", "-...", "-...", "-...", "-...",
NULL, NULL, NULL, /* all kind of weird stuff */
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL,
/* Standard Greek Alphabet */
".-", "-..." , "--.", "-..", ".", "--..", "....",
"-.-.", "..", "-.-", ".-..", "--", "-.", "-..-", "---",
".--.", ".-.", NULL, "...", "-", "-.--", "..-.", "----",
"--.-", ".--", NULL, NULL, NULL, NULL, NULL, NULL,
NULL,
/* Greek Alphabet, small letters */
".-", "-..." , "--.", "-..", ".", "--..", "....",
"-.-.", "..", "-.-", ".-..", "--", "-.", "-..-", "---",
".--.", ".-.", "...", "...", "-", "-.--", "..-.", "----",
"--.-", ".--", NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1023 */
/* 1024-1039, cyrillic (Serbian, Macedonian, Ukrainian) UC */
".", ".", "-.. .---", "--. .---", ".", "-.. --..", "..", "..",
".---", ".-.. .---", "-. .---", "-.-.", "-.- .---", "..", "..-","-.. --..",
/* 32 letters of Russian Cyrillic alphabet */
".-", "-...", ".--", "--.", "-..", ".", "...-", /* 1040-1071 */
"--..", "..",".---", "-.-", ".-..", "--", "-.", /* uppercase */
"---", ".--.", ".-.", "...", "-", "..-", "..-.", /* cyrillic */
"....", "-.-.", "---.", "----", "--.-", "-..-",
"-.--", "-..-", "..-..", "..--", ".-.-",
".-", "-...", ".--", "--.", "-..", ".", "...-", /* 1072-1103 */
"--..", "..",".---", "-.-", ".-..", "--", "-.", /* lowercase */
"---", ".--.", ".-.", "...", "-", "..-", "..-.", /* cyrillic */
"....", "-.-.", "---.", "----", "--.-", "-..-",
"-.--", "-..-", "..-..", "..--", ".-.-",
/* 1004-1119, cyrillic (Serbian, Macedonian, Ukrainian) UC */
".", ".", "-.. .---", "--. .---", ".", "-.. --..", "..", "..",
".---", ".-.. .---", "-. .---", "-.-.", "-.- .---", "..", "..-","-.. --..",
/* 1120 - 1487 to be done... */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
/* 1488-1514 Hebrew according to Wikipedia */
".-", "-...", "--.", "-..", "---", ".", "--..", "....",
"..-", "..", "-.-", "-.-", ".-..", "--", "--", "-.", "-.",
"-.-.", ".---", ".--.", ".--.", ".--", ".--", "--.-", ".-.", "...",
"-", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
/* Arabic Alphabet, as per Wikipedia.
* Nobody is possibly ever going to use this :-)
* 1569-1610
*/
".", NULL, NULL, NULL, NULL, NULL,
".-", "-...", "-", "-", "-.-.",
".---", "....", "---", "-..", "--..", ".-.", "---.", "...",
"----", "-..-", "...-", "..-", "-.--", ".-.-", "--.", NULL,
NULL, NULL, NULL, NULL, NULL, "..-.", "--.-", "-.-",
".-..", "--", "-.", "..-..", ".--", NULL, "..", NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL /* 1920 */
};