/*****************************************************************************
 * Copyright (c) 2013 IBM Corporation
 * All rights reserved.
 * This program and the accompanying materials
 * are made available under the terms of the BSD License
 * which accompanies this distribution, and is available at
 * http://www.opensource.org/licenses/bsd-license.php
 *
 * Contributors:
 *     IBM Corporation - initial implementation
 *****************************************************************************/

#include <stdint.h>

/***********************************/
/* Keycodes for US Keyboard        */
/*   - no control keys pressed -   */
/***********************************/
const uint8_t keycodes_std_US[] = {
	0,	/* 0	00	Reserved (no event indicated) */
	0,	/* 1	01	Keyboard ErrorRollOver      */
	0,	/* 2	02	Keyboard POSTFail           */
	0,	/* 3	03	Keyboard ErrorUndefined     */
	'a',	/* 4	04	Keyboard a and A	31  */
	'b',	/* 5	05	Keyboard b and B	50  */
	'c',	/* 6	06	Keyboard c and C	48  */
	'd',	/* 7	07	Keyboard d and D	33  */
	'e',	/* 8	08	Keyboard e and E	19  */
	'f',	/* 9	09	Keyboard f and F	34  */
	'g',	/* 10	0A	Keyboard g and G	35  */
	'h',	/* 11	0B	Keyboard h and H	36  */
	'i',	/* 12	0C	Keyboard i and I	24  */
	'j',	/* 13	0D	Keyboard j and J	37  */
	'k',	/* 14	0E	Keyboard k and K	38  */
	'l',	/* 15	0F	Keyboard l and L	39  */
	'm',	/* 16	10	Keyboard m and M	52  */
	'n',	/* 17	11	Keyboard n and N	51  */
	'o',	/* 18	12	Keyboard o and O	25  */
	'p',	/* 19	13	Keyboard p and P	26  */
	'q',	/* 20	14	Keyboard q and Q	17  */
	'r',	/* 21	15	Keyboard r and R	20  */
	's',	/* 22	16	Keyboard s and S	32  */
	't',	/* 23	17	Keyboard t and T	21  */
	'u',	/* 24	18	Keyboard u and U	23  */
	'v',	/* 25	19	Keyboard v and V	49  */
	'w',	/* 26	1A	Keyboard w and W	18  */
	'x',	/* 27	1B	Keyboard x and X	47  */
	'y',	/* 28	1C	Keyboard y and Y	22  */
	'z',	/* 29	1D	Keyboard z and Z	46  */
	'1',	/* 30	1E	Keyboard 1 and !	2   */
	'2',	/* 31	1F	Keyboard 2 and @	3   */
	'3',	/* 32	20	Keyboard 3 and #	4   */
	'4',	/* 33	21	Keyboard 4 and $	5   */
	'5',	/* 34	22	Keyboard 5 and %	6   */
	'6',	/* 35	23	Keyboard 6 and ^	7   */
	'7',	/* 36	24	Keyboard 7 and &	8   */
	'8',	/* 37	25	Keyboard 8 and *	9   */
	'9',	/* 38	26	Keyboard 9 and (	10  */
	'0',	/* 39	27	Keyboard 0 and )	11  */
	13,	/* 40	28	Keyboard Return (ENTER)	43  */
	27,	/* 41	29	Keyboard ESCAPE	        110 */
	8,	/* 42	2A	Keyboard DELETE (BS)	15  */
	9,	/* 43	2B	Keyboard Tab		16  */
	' ',	/* 44	2C	Keyboard Spacebar	61  */
	'-',	/* 45	2D	Keyboard - and (underscore) 12 */
	'=',	/* 46	2E	Keyboard = and +	13  */
	'[',	/* 47	2F	Keyboard [ and {	27  */
	']',	/* 48	30	Keyboard ] and }	28  */
	'\\',	/* 49	31	Keyboard \ and |	29  */
	'\\',	/* 50	32	Keyboard \ and |	42  */
	';',	/* 51	33	Keyboard ; and :	40  */
	39,	/* 52	34	Keyboard ' and "	41  */
	96,	/* 53	35	Keyboard Grave Accent and Tilde 1 */
	',',	/* 54	36	Keyboard , and <	53  */
	'.',	/* 55	37	Keyboard . and >	54  */
	'/',	/* 56	38	Keyboard / and ?	55  */
	0,	/* 57	39	Keyboard Caps Lock	30  */
	0,	/* 58	3A	Keyboard F1		112 */
	0,	/* 59	3B	Keyboard F2		113 */
	0,	/* 60	3C	Keyboard F3		114 */
	0,	/* 61	3D	Keyboard F4		115 */
	0,	/* 62	3E	Keyboard F5		116 */
	0,	/* 63	3F	Keyboard F6		117 */
	0,	/* 64	40	Keyboard F7		118 */
	0,	/* 65	41	Keyboard F8		119 */
	0,	/* 66	42	Keyboard F9		120 */
	0,	/* 67	43	Keyboard F10		121 */
	0,	/* 68	44	Keyboard F11		122 */
	0,	/* 69	45	Keyboard F12		123 */
	0,	/* 70	46	Keyboard PrintScreen	124 */
	0,	/* 71	47	Keyboard Scroll Lock	125 */
	0,	/* 72	48	Keyboard Pause		126 */
	0,	/* 73	49	Keyboard Insert		75 */
	0,	/* 74	4A	Keyboard Home		80 */
	0,	/* 75	4B	Keyboard PageUp		85 */
	0,	/* 76	4C	Keyboard Delete Forward	76 */
	0,	/* 77	4D	Keyboard End		81 */
	0,	/* 78	4E	Keyboard PageDown	86 */
	0,	/* 79	4F	Keyboard RightArrow	89 */
	0,	/* 80	50	Keyboard LeftArrow	79 */
	0,	/* 81	51	Keyboard DownArrow	84 */
	0,	/* 82	52	Keyboard UpArrow	83 */
	0,	/* 83	53	Keypad Num Lock and Clear 90 */
	'/',	/* 84	54	Keypad /		95 */
	'*',	/* 85	55	Keypad *		100 */
	'-',	/* 86	56	Keypad -		105 */
	'+',	/* 87	57	Keypad +		106 */
	13,	/* 88	58	Keypad ENTER		108 */
	'1',	/* 89	59	Keypad 1 and End	93  */
	'2',	/* 90	5A	Keypad 2 and Down Arrow	98  */
	'3',	/* 91	5B	Keypad 3 and PageDn	103 */
	'4',	/* 92	5C	Keypad 4 and Left Arrow	92  */
	'5',	/* 93	5D	Keypad 5		97  */
	'6',	/* 94	5E	Keypad 6 and Right Arrow 102 */
	'7',	/* 95	5F	Keypad 7 and Home	91  */
	'8',	/* 96	60	Keypad 8 and Up Arrow	96  */
	'9',	/* 97	61	Keypad 9 and PageUp	101 */
	'0',	/* 98	62	Keypad 0 and Insert	99  */
	'.',	/* 99	63	Keypad . and Delete	104 */
	'\\'	/* 100	64	Keyboard Non-US \ and |	45  */
};

/***********************************/
/* Keycodes for US Keyboard        */
/*     - SHIFT-KEY pressed -       */
/***********************************/
const uint8_t keycodes_shift_US[] = {
	0,	/* 0	00	Reserved (no event indicated) */
	0,	/* 1	01	Keyboard ErrorRollOver      */
	0,	/* 2	02	Keyboard POSTFail           */
	0,	/* 3	03	Keyboard ErrorUndefined     */
	'A',	/* 4	04	Keyboard a and A	31  */
	'B',	/* 5	05	Keyboard b and B	50  */
	'C',	/* 6	06	Keyboard c and C	48  */
	'D',	/* 7	07	Keyboard d and D	33  */
	'E',	/* 8	08	Keyboard e and E	19  */
	'F',	/* 9	09	Keyboard f and F	34  */
	'G',	/* 10	0A	Keyboard g and G	35  */
	'H',	/* 11	0B	Keyboard h and H	36  */
	'I',	/* 12	0C	Keyboard i and I	24  */
	'J',	/* 13	0D	Keyboard j and J	37  */
	'K',	/* 14	0E	Keyboard k and K	38  */
	'L',	/* 15	0F	Keyboard l and L	39  */
	'M',	/* 16	10	Keyboard m and M	52  */
	'N',	/* 17	11	Keyboard n and N	51  */
	'O',	/* 18	12	Keyboard o and O	25  */
	'P',	/* 19	13	Keyboard p and P	26  */
	'Q',	/* 20	14	Keyboard q and Q	17  */
	'R',	/* 21	15	Keyboard r and R	20  */
	'S',	/* 22	16	Keyboard s and S	32  */
	'T',	/* 23	17	Keyboard t and T	21  */
	'U',	/* 24	18	Keyboard u and U	23  */
	'V',	/* 25	19	Keyboard v and V	49  */
	'W',	/* 26	1A	Keyboard w and W	18  */
	'X',	/* 27	1B	Keyboard x and X	47  */
	'Y',	/* 28	1C	Keyboard y and Y	22  */
	'Z',	/* 29	1D	Keyboard z and Z	46  */
	'!',	/* 30	1E	Keyboard 1 and !	2   */
	'@',	/* 31	1F	Keyboard 2 and @	3   */
	'#',	/* 32	20	Keyboard 3 and #	4   */
	'$',	/* 33	21	Keyboard 4 and $	5   */
	'%',	/* 34	22	Keyboard 5 and %	6   */
	'^',	/* 35	23	Keyboard 6 and ^	7   */
	'&',	/* 36	24	Keyboard 7 and &	8   */
	'*',	/* 37	25	Keyboard 8 and *	9   */
	'(',	/* 38	26	Keyboard 9 and (	10  */
	')',	/* 39	27	Keyboard 0 and )	11  */
	13,	/* 40	28	Keyboard Return (ENTER)	43  */
	27,	/* 41	29	Keyboard ESCAPE         110 */
	8,	/* 42	2A	Keyboard DELETE (BS)	15  */
	9,	/* 43	2B	Keyboard Tab 		16  */
	' ',	/* 44	2C	Keyboard Spacebar	61  */
	'_',	/* 45	2D	Keyboard - and (underscore) 12 */
	'+',	/* 46	2E	Keyboard = and +	13  */
	'{',	/* 47	2F	Keyboard [ and {	27  */
	'}',	/* 48	30	Keyboard ] and }	28  */
	'|',	/* 49	31	Keyboard \ and |	29  */
	'|',	/* 50	32	Keyboard \ and |	42  */
	':',	/* 51	33	Keyboard ; and :	40  */
	'"',	/* 52	34	Keyboard ' and "	41  */
	'~',	/* 53	35	Keyboard Grave Accent and Tilde 1 */
	'<',	/* 54	36	Keyboard , and <	53  */
	'>',	/* 55	37	Keyboard . and >	54  */
	'?',	/* 56	38	Keyboard / and ?	55  */
	0,	/* 57	39	Keyboard Caps Lock	30  */
	0,	/* 58	3A	Keyboard F1		112 */
	0,	/* 59	3B	Keyboard F2		113 */
	0,	/* 60	3C	Keyboard F3		114 */
	0,	/* 61	3D	Keyboard F4		115 */
	0,	/* 62	3E	Keyboard F5		116 */
	0,	/* 63	3F	Keyboard F6		117 */
	0,	/* 64	40	Keyboard F7		118 */
	0,	/* 65	41	Keyboard F8		119 */
	0,	/* 66	42	Keyboard F9		120 */
	0,	/* 67	43	Keyboard F10		121 */
	0,	/* 68	44	Keyboard F11		122 */
	0,	/* 69	45	Keyboard F12		123 */
	0,	/* 70	46	Keyboard PrintScreen	124 */
	0,	/* 71	47	Keyboard Scroll Lock	125 */
	0,	/* 72	48	Keyboard Pause		126 */
	48,	/* 73	49	Keyboard Insert		75  */
	55,	/* 74	4A	Keyboard Home		80  */
	57,	/* 75	4B	Keyboard PageUp		85  */
	46,	/* 76	4C	Keyboard Delete Forward	76  */
	49,	/* 77	4D	Keyboard End		81  */
	51,	/* 78	4E	Keyboard PageDown	86  */
	54,	/* 79	4F	Keyboard RightArrow	89  */
	52,	/* 80	50	Keyboard LeftArrow	79  */
	50,	/* 81	51	Keyboard DownArrow	84  */
	56,	/* 82	52	Keyboard UpArrow	83  */
	0,	/* 83	53	Keypad Num Lock and Clear 90 */
	'/',	/* 84	54	Keypad /		95 */
	'*',	/* 85	55	Keypad *		100 */
	'-',	/* 86	56	Keypad -		105 */
	'+',	/* 87	57	Keypad +		106 */
	13,	/* 88	58	Keypad ENTER		108 */
	'1',	/* 89	59	Keypad 1 and End	93  */
	'2',	/* 90	5A	Keypad 2 and Down Arrow	98  */
	'3',	/* 91	5B	Keypad 3 and PageDn	103 */
	'4',	/* 92	5C	Keypad 4 and Left Arrow	92  */
	'5',	/* 93	5D	Keypad 5		97  */
	'6',	/* 94	5E	Keypad 6 and Right Arrow 102 */
	'7',	/* 95	5F	Keypad 7 and Home	91  */
	'8',	/* 96	60	Keypad 8 and Up Arrow	96  */
	'9',	/* 97	61	Keypad 9 and PageUp	101 */
	'0',	/* 98	62	Keypad 0 and Insert	99  */
	'.',	/* 99	63	Keypad . and Delete	104 */
	'|'	/* 100	64	Keyboard Non-US \ and |	45  */
};

/***********************************/
/* Keycodes for 1 byte translation */
/*     - CONTROL-KEY pressed -     */
/***********************************/
const uint8_t keycodes_alt_GR[] = {
	0,	/* 0	00	Reserved (no event indicated) */
	0,	/* 1	01	Keyboard ErrorRollOver      */
	0,	/* 2	02	Keyboard POSTFail           */
	0,	/* 3	03	Keyboard ErrorUndefined     */
	0,	/* 4	04	Keyboard a and A	31  */
	0,	/* 5	05	Keyboard b and B	50  */
	0,	/* 6	06	Keyboard c and C	48  */
	0,	/* 7	07	Keyboard d and D	33  */
	0,	/* 8	08	Keyboard e and E	19  */
	0,	/* 9	09	Keyboard f and F	34  */
	0,	/* 10	0A	Keyboard g and G	35  */
	0,	/* 11	0B	Keyboard h and H	36  */
	0,	/* 12	0C	Keyboard i and I	24  */
	0,	/* 13	0D	Keyboard j and J	37  */
	0,	/* 14	0E	Keyboard k and K	38  */
	0,	/* 15	0F	Keyboard l and L	39  */
	0,	/* 16	10	Keyboard m and M	52  */
	0,	/* 17	11	Keyboard n and N	51  */
	0,	/* 18	12	Keyboard o and O	25  */
	0,	/* 19	13	Keyboard p and P	26  */
	'@',	/* 20	14	Keyboard q and Q	17  */
	0,	/* 21	15	Keyboard r and R	20  */
	0,	/* 22	16	Keyboard s and S	32  */
	0,	/* 23	17	Keyboard t and T	21  */
	0,	/* 24	18	Keyboard u and U	23  */
	0,	/* 25	19	Keyboard v and V	49  */
	0,	/* 26	1A	Keyboard w and W	18  */
	0,	/* 27	1B	Keyboard x and X	47  */
	0,	/* 28	1C	Keyboard y and Y	22  */
	0,	/* 29	1D	Keyboard z and Z	46  */
	0,	/* 30	1E	Keyboard 1 and !	2   */
	0,	/* 31	1F	Keyboard 2 and @	3   */
	0,	/* 32	20	Keyboard 3 and #	4   */
	0,	/* 33	21	Keyboard 4 and $	5   */
	0,	/* 34	22	Keyboard 5 and %	6   */
	0,	/* 35	23	Keyboard 6 and ^	7   */
	'{',	/* 36	24	Keyboard 7 and &	8   */
	'[',	/* 37	25	Keyboard 8 and *	9   */
	']',	/* 38	26	Keyboard 9 and (	10  */
	'}',	/* 39	27	Keyboard 0 and )	11  */
	0,	/* 40	28	Keyboard Return (ENTER)	43  */
	0,	/* 41	29	Keyboard ESCAPE         110 */
	0,	/* 42	2A	Keyboard DELETE (BS)	15  */
	0,	/* 43	2B	Keyboard Tab 		16  */
	0,	/* 44	2C	Keyboard Spacebar	61  */
	'\\',	/* 45	2D	Keyboard - and (underscore) 12 */
	0,	/* 46	2E	Keyboard = and +	13  */
	0,	/* 47	2F	Keyboard [ and {	27  */
	'~',	/* 48	30	Keyboard ] and }	28  */
	0,	/* 49	31	Keyboard \ and |	29  */
	0,	/* 50	32	Keyboard Non-US # and ~	42  */
	0,	/* 51	33	Keyboard ; and :	40  */
	0,	/* 52	34	Keyboard ' and "	41  */
	0,	/* 53	35	Keyboard Grave Accent and Tilde 1 */
	0,	/* 54	36	Keyboard , and <	53  */
	0,	/* 55	37	Keyboard . and >	54  */
	0,	/* 56	38	Keyboard / and ?	55  */
	0,	/* 57	39	Keyboard Caps Lock	30  */
	0,	/* 58	3A	Keyboard F1		112 */
	0,	/* 59	3B	Keyboard F2		113 */
	0,	/* 60	3C	Keyboard F3		114 */
	0,	/* 61	3D	Keyboard F4		115 */
	0,	/* 62	3E	Keyboard F5		116 */
	0,	/* 63	3F	Keyboard F6		117 */
	0,	/* 64	40	Keyboard F7		118 */
	0,	/* 65	41	Keyboard F8		119 */
	0,	/* 66	42	Keyboard F9		120 */
	0,	/* 67	43	Keyboard F10		121 */
	0,	/* 68	44	Keyboard F11		122 */
	0,	/* 69	45	Keyboard F12		123 */
	0,	/* 70	46	Keyboard PrintScreen	124 */
	0,	/* 71	47	Keyboard Scroll Lock	125 */
	0,	/* 72	48	Keyboard Pause		126 */
	0,	/* 73	49	Keyboard Insert		75 */
	0,	/* 74	4A	Keyboard Home		80 */
	0,	/* 75	4B	Keyboard PageUp		85 */
	0,	/* 76	4C	Keyboard Delete Forward	76 */
	0,	/* 77	4D	Keyboard End		81 */
	0,	/* 78	4E	Keyboard PageDown	86 */
	0,	/* 79	4F	Keyboard RightArrow	89 */
	0,	/* 80	50	Keyboard LeftArrow	79 */
	0,	/* 81	51	Keyboard DownArrow	84 */
	0,	/* 82	52	Keyboard UpArrow	83 */
	0,	/* 83	53	Keypad Num Lock and Clear 90 */
	0,	/* 84	54	Keypad /		95 */
	0,	/* 85	55	Keypad *		100 */
	0,	/* 86	56	Keypad -		105 */
	0,	/* 87	57	Keypad +		106 */
	0,	/* 88	58	Keypad ENTER		108 */
	0,	/* 89	59	Keypad 1 and End	93  */
	0,	/* 90	5A	Keypad 2 and Down Arrow	98  */
	0,	/* 91	5B	Keypad 3 and PageDn	103 */
	0,	/* 92	5C	Keypad 4 and Left Arrow	92  */
	0,	/* 93	5D	Keypad 5		97  */
	0,	/* 94	5E	Keypad 6 and Right Arrow 102 */
	0,	/* 95	5F	Keypad 7 and Home	91  */
	0,	/* 96	60	Keypad 8 and Up Arrow	96  */
	0,	/* 97	61	Keypad 9 and PageUp	101 */
	0,	/* 98	62	Keypad 0 and Insert	99  */
	0,	/* 99	63	Keypad . and Delete	104 */
	'|'	/* 100	64	Keyboard Non-US \ and |	45  */
};


/***********************************/
/* Keycodes for 1 byte translation */
/*     - CONTROL-KEY pressed -     */
/***********************************/
const uint8_t keycodes_ctrl[] = {
	0,	/* 0	00	Reserved (no event indicated) */
	0,	/* 1	01	Keyboard ErrorRollOver      */
	0,	/* 2	02	Keyboard POSTFail           */
	0,	/* 3	03	Keyboard ErrorUndefined     */
	1,	/* 4	04	Keyboard a and A	31  */
	2,	/* 5	05	Keyboard b and B	50  */
	3,	/* 6	06	Keyboard c and C	48  */
	4,	/* 7	07	Keyboard d and D	33  */
	5,	/* 8	08	Keyboard e and E	19  */
	6,	/* 9	09	Keyboard f and F	34  */
	7,	/* 10	0A	Keyboard g and G	35  */
	8,	/* 11	0B	Keyboard h and H	36  */
	9,	/* 12	0C	Keyboard i and I	24  */
	10,	/* 13	0D	Keyboard j and J	37  */
	11,	/* 14	0E	Keyboard k and K	38  */
	12,	/* 15	0F	Keyboard l and L	39  */
	13,	/* 16	10	Keyboard m and M	52  */
	14,	/* 17	11	Keyboard n and N	51  */
	15,	/* 18	12	Keyboard o and O	25  */
	16,	/* 19	13	Keyboard p and P	26  */
	17,	/* 20	14	Keyboard q and Q	17  */
	18,	/* 21	15	Keyboard r and R	20  */
	19,	/* 22	16	Keyboard s and S	32  */
	20,	/* 23	17	Keyboard t and T	21  */
	21,	/* 24	18	Keyboard u and U	23  */
	22,	/* 25	19	Keyboard v and V	49  */
	23,	/* 26	1A	Keyboard w and W	18  */
	24,	/* 27	1B	Keyboard x and X	47  */
	25,	/* 28	1C	Keyboard y and Y	22  */
	26,	/* 29	1D	Keyboard z and Z	46  */
	0,	/* 30	1E	Keyboard 1 and !	2   */
	0,	/* 31	1F	Keyboard 2 and @	3   */
	0,	/* 32	20	Keyboard 3 and #	4   */
	0,	/* 33	21	Keyboard 4 and $	5   */
	0,	/* 34	22	Keyboard 5 and %	6   */
	0,	/* 35	23	Keyboard 6 and ^	7   */
	0,	/* 36	24	Keyboard 7 and &	8   */
	0,	/* 37	25	Keyboard 8 and *	9   */
	0,	/* 38	26	Keyboard 9 and (	10  */
	0,	/* 39	27	Keyboard 0 and )	11  */
	0,	/* 40	28	Keyboard Return (ENTER)	43  */
	0,	/* 41	29	Keyboard ESCAPE 	110 */
	0,	/* 42	2A	Keyboard DELETE (BS)	15  */
	0,	/* 43	2B	Keyboard Tab 		16  */
	0,	/* 44	2C	Keyboard Spacebar 	61  */
	0,	/* 45	2D	Keyboard - and (underscore) 12 */
	0,	/* 46	2E	Keyboard = and +	13  */
	0,	/* 47	2F	Keyboard [ and {	27  */
	0,	/* 48	30	Keyboard ] and }	28  */
	0,	/* 49	31	Keyboard \ and |	29  */
	0,	/* 50	32	Keyboard Non-US # and ~	42  */
	0,	/* 51	33	Keyboard ; and :	40  */
	0,	/* 52	34	Keyboard ' and "	41  */
	0,	/* 53	35	Keyboard Grave Accent and Tilde 1 */
	0,	/* 54	36	Keyboard , and <	53  */
	0,	/* 55	37	Keyboard . and >	54  */
	0,	/* 56	38	Keyboard / and ?	55  */
	0,	/* 57	39	Keyboard Caps Lock	30  */
	0,	/* 58	3A	Keyboard F1		112 */
	0,	/* 59	3B	Keyboard F2		113 */
	0,	/* 60	3C	Keyboard F3		114 */
	0,	/* 61	3D	Keyboard F4		115 */
	0,	/* 62	3E	Keyboard F5		116 */
	0,	/* 63	3F	Keyboard F6		117 */
	0,	/* 64	40	Keyboard F7		118 */
	0,	/* 65	41	Keyboard F8		119 */
	0,	/* 66	42	Keyboard F9		120 */
	0,	/* 67	43	Keyboard F10		121 */
	0,	/* 68	44	Keyboard F11		122 */
	0,	/* 69	45	Keyboard F12		123 */
	0,	/* 70	46	Keyboard PrintScreen	124 */
	0,	/* 71	47	Keyboard Scroll Lock	125 */
	0,	/* 72	48	Keyboard Pause		126 */
	0,	/* 73	49	Keyboard Insert		75 */
	0,	/* 74	4A	Keyboard Home		80 */
	0,	/* 75	4B	Keyboard PageUp		85 */
	0,	/* 76	4C	Keyboard Delete Forward	76 */
	0,	/* 77	4D	Keyboard End		81 */
	0,	/* 78	4E	Keyboard PageDown	86 */
	0,	/* 79	4F	Keyboard RightArrow	89 */
	0,	/* 80	50	Keyboard LeftArrow	79 */
	0,	/* 81	51	Keyboard DownArrow	84 */
	0,	/* 82	52	Keyboard UpArrow	83 */
	0,	/* 83	53	Keypad Num Lock and Clear 90 */
	0,	/* 84	54	Keypad /		95 */
	0,	/* 85	55	Keypad *		100 */
	0,	/* 86	56	Keypad -		105 */
	0,	/* 87	57	Keypad +		106 */
	0,	/* 88	58	Keypad ENTER		108 */
	0,	/* 89	59	Keypad 1 and End	93  */
	0,	/* 90	5A	Keypad 2 and Down Arrow	98  */
	0,	/* 91	5B	Keypad 3 and PageDn	103 */
	0,	/* 92	5C	Keypad 4 and Left Arrow	92  */
	0,	/* 93	5D	Keypad 5		97  */
	0,	/* 94	5E	Keypad 6 and Right Arrow 102 */
	0,	/* 95	5F	Keypad 7 and Home	91  */
	0,	/* 96	60	Keypad 8 and Up Arrow	96  */
	0,	/* 97	61	Keypad 9 and PageUp	101 */
	0,	/* 98	62	Keypad 0 and Insert	99  */
	0,	/* 99	63	Keypad . and Delete	104 */
	0	/* 100	64	Keyboard Non-US \ and |	45  */
};