/*
 *      SCCS:  @(#)  kysymdf.m Rel 1.13	    (7/17/92)
 *
 *	UniSoft Ltd., London, England
 *
 * (C) Copyright 1991 X/Open Company Limited
 *
 * All rights reserved.  No part of this source code may be reproduced,
 * stored in a retrieval system, or transmitted, in any form or by any
 * means, electronic, mechanical, photocopying, recording or otherwise,
 * except as stated in the end-user licence agreement, without the prior
 * permission of the copyright owners.
 *
 * X/Open and the 'X' symbol are trademarks of X/Open Company Limited in
 * the UK and other countries.
 */
>>TITLE keysymdef XOPEN
>>CFILES Test0.c Test1.c Test2.c Test3.c Test4.c TestA.c TestC.c TestG.c TestH.c TestK.c TestL.c TestM.c TestP.c TestS.c TestT.c
>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_LATIN1
is defined, 
then the symbols in the table which have code 1  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "1" "20" "XK_space"
.tL "1" "21" "XK_exclam"
.tL "1" "22" "XK_quotedbl"
.tL "1" "23" "XK_numbersign"
.tL "1" "24" "XK_dollar"
.tL "1" "25" "XK_percent"
.tL "1" "26" "XK_ampersand"
.tL "1" "27" "XK_apostrophe"
.tL "1" "27" "XK_quoteright"
.tL "1" "28" "XK_parenleft"
.tL "1" "29" "XK_parenright"
.tL "1" "2A" "XK_asterisk"
.tL "1" "2B" "XK_plus"
.tL "1" "2C" "XK_comma"
.tL "1" "2D" "XK_minus"
.tL "1" "2E" "XK_period"
.tL "1" "2F" "XK_slash"
.tL "1" "30" "XK_0"
.tL "1" "31" "XK_1"
.tL "1" "32" "XK_2"
.tL "1" "33" "XK_3"
.tL "1" "34" "XK_4"
.tL "1" "35" "XK_5"
.tL "1" "36" "XK_6"
.tL "1" "37" "XK_7"
.tL "1" "38" "XK_8"
.tL "1" "39" "XK_9"
.tL "1" "3A" "XK_colon"
.tL "1" "3B" "XK_semicolon"
.tL "1" "3C" "XK_less"
.tL "1" "3D" "XK_equal"
.tL "1" "3E" "XK_greater"
.tL "1" "3F" "XK_question"
.tL "1" "40" "XK_at"
.tL "1" "41" "XK_A"
.tL "1" "42" "XK_B"
.tL "1" "43" "XK_C"
.tL "1" "44" "XK_D"
.tL "1" "45" "XK_E"
.tL "1" "46" "XK_F"
.tL "1" "47" "XK_G"
.tL "1" "48" "XK_H"
.tL "1" "49" "XK_I"
.tL "1" "4A" "XK_J"
.tL "1" "4B" "XK_K"
.tL "1" "4C" "XK_L"
.tL "1" "4D" "XK_M"
.tL "1" "4E" "XK_N"
.tL "1" "4F" "XK_O"
.tL "1" "50" "XK_P"
.tL "1" "51" "XK_Q"
.tL "1" "52" "XK_R"
.tL "1" "53" "XK_S"
.tL "1" "54" "XK_T"
.tL "1" "55" "XK_U"
.tL "1" "56" "XK_V"
.tL "1" "57" "XK_W"
.tL "1" "58" "XK_X"
.tL "1" "59" "XK_Y"
.tL "1" "5A" "XK_Z"
.tL "1" "5B" "XK_bracketleft"
.tL "1" "5C" "XK_backslash"
.tL "1" "5D" "XK_bracketright"
.tL "1" "5E" "XK_asciicircum"
.tL "1" "5F" "XK_underscore"
.tL "1" "60" "XK_grave"
.tL "1" "60" "XK_quoteleft"
.tL "1" "61" "XK_a"
.tL "1" "62" "XK_b"
.tL "1" "63" "XK_c"
.tL "1" "64" "XK_d"
.tL "1" "65" "XK_e"
.tL "1" "66" "XK_f"
.tL "1" "67" "XK_g"
.tL "1" "68" "XK_h"
.tL "1" "69" "XK_i"
.tL "1" "6A" "XK_j"
.tL "1" "6B" "XK_k"
.tL "1" "6C" "XK_l"
.tL "1" "6D" "XK_m"
.tL "1" "6E" "XK_n"
.tL "1" "6F" "XK_o"
.tL "1" "70" "XK_p"
.tL "1" "71" "XK_q"
.tL "1" "72" "XK_r"
.tL "1" "73" "XK_s"
.tL "1" "74" "XK_t"
.tL "1" "75" "XK_u"
.tL "1" "76" "XK_v"
.tL "1" "77" "XK_w"
.tL "1" "78" "XK_x"
.tL "1" "79" "XK_y"
.tL "1" "7A" "XK_z"
.tL "1" "7B" "XK_braceleft"
.tL "1" "7C" "XK_bar"
.tL "1" "7D" "XK_braceright"
.tL "1" "7E" "XK_asciitilde"
.tL "1" "A0" "XK_nobreakspace"
.tL "1" "A1" "XK_exclamdown"
.tL "1" "A2" "XK_cent"
.tL "1" "A3" "XK_sterling"
.tL "1" "A4" "XK_currency"
.tL "1" "A5" "XK_yen"
.tL "1" "A6" "XK_brokenbar"
.tL "1" "A7" "XK_section"
.tL "1" "A8" "XK_diaeresis"
.tL "1" "A9" "XK_copyright"
.tL "1" "AA" "XK_ordfeminine"
.tL "1" "AB" "XK_guillemotleft"
.tL "1" "AC" "XK_notsign"
.tL "1" "AD" "XK_hyphen"
.tL "1" "AE" "XK_registered"
.tL "1" "AF" "XK_macron"
.tL "1" "B0" "XK_degree"
.tL "1" "B1" "XK_plusminus"
.tL "1" "B2" "XK_twosuperior"
.tL "1" "B3" "XK_threesuperior"
.tL "1" "B4" "XK_acute"
.tL "1" "B5" "XK_mu"
.tL "1" "B6" "XK_paragraph"
.tL "1" "B7" "XK_periodcentered"
.tL "1" "B8" "XK_cedilla"
.tL "1" "B9" "XK_onesuperior"
.tL "1" "BA" "XK_masculine"
.tL "1" "BB" "XK_guillemotright"
.tL "1" "BC" "XK_onequarter"
.tL "1" "BD" "XK_onehalf"
.tL "1" "BE" "XK_threequarters"
.tL "1" "BF" "XK_questiondown"
.tL "1" "C0" "XK_Agrave"
.tL "1" "C1" "XK_Aacute"
.tL "1" "C2" "XK_Acircumflex"
.tL "1" "C3" "XK_Atilde"
.tL "1" "C4" "XK_Adiaeresis"
.tL "1" "C5" "XK_Aring"
.tL "1" "C6" "XK_AE"
.tL "1" "C7" "XK_Ccedilla"
.tL "1" "C8" "XK_Egrave"
.tL "1" "C9" "XK_Eacute"
.tL "1" "CA" "XK_Ecircumflex"
.tL "1" "CB" "XK_Ediaeresis"
.tL "1" "CC" "XK_Igrave"
.tL "1" "CD" "XK_Iacute"
.tL "1" "CE" "XK_Icircumflex"
.tL "1" "CF" "XK_Idiaeresis"
.tL "1" "D0" "XK_ETH"
.tL "1" "D0" "XK_Eth"
.tL "1" "D1" "XK_Ntilde"
.tL "1" "D2" "XK_Ograve"
.tL "1" "D3" "XK_Oacute"
.tL "1" "D4" "XK_Ocircumflex"
.tL "1" "D5" "XK_Otilde"
.tL "1" "D6" "XK_Odiaeresis"
.tL "1" "D7" "XK_multiply"
.tL "1" "D8" "XK_Ooblique"
.tL "1" "D9" "XK_Ugrave"
.tL "1" "DA" "XK_Uacute"
.tL "1" "DB" "XK_Ucircumflex"
.tL "1" "DC" "XK_Udiaeresis"
.tL "1" "DD" "XK_Yacute"
.tL "1" "DE" "XK_THORN"
.tL "1" "DE" "XK_Thorn"
.tL "1" "DF" "XK_ssharp"
.tL "1" "E0" "XK_agrave"
.tL "1" "E1" "XK_aacute"
.tL "1" "E2" "XK_acircumflex"
.tL "1" "E3" "XK_atilde"
.tL "1" "E4" "XK_adiaeresis"
.tL "1" "E5" "XK_aring"
.tL "1" "E6" "XK_ae"
.tL "1" "E7" "XK_ccedilla"
.tL "1" "E8" "XK_egrave"
.tL "1" "E9" "XK_eacute"
.tL "1" "EA" "XK_ecircumflex"
.tL "1" "EB" "XK_ediaeresis"
.tL "1" "EC" "XK_igrave"
.tL "1" "ED" "XK_iacute"
.tL "1" "EE" "XK_icircumflex"
.tL "1" "EF" "XK_idiaeresis"
.tL "1" "F0" "XK_eth"
.tL "1" "F1" "XK_ntilde"
.tL "1" "F2" "XK_ograve"
.tL "1" "F3" "XK_oacute"
.tL "1" "F4" "XK_ocircumflex"
.tL "1" "F5" "XK_otilde"
.tL "1" "F6" "XK_odiaeresis"
.tL "1" "F7" "XK_division"
.tL "1" "F8" "XK_oslash"
.tL "1" "F9" "XK_ugrave"
.tL "1" "FA" "XK_uacute"
.tL "1" "FB" "XK_ucircumflex"
.tL "1" "FC" "XK_udiaeresis"
.tL "1" "FD" "XK_yacute"
.tL "1" "FE" "XK_thorn"
.tL "1" "FF" "XK_ydiaeresis"
>>STRATEGY
Define symbol XK_LATIN1.
Include header file <X11/keysymdef.h>
For each KeySym in table with code 1:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf1();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_LATIN2
is defined, 
then the symbols in the table which have code 2  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "2" "1A1" "XK_Aogonek"
.tL "2" "1A2" "XK_breve"
.tL "2" "1A3" "XK_Lstroke"
.tL "2" "1A5" "XK_Lcaron"
.tL "2" "1A6" "XK_Sacute"
.tL "2" "1A9" "XK_Scaron"
.tL "2" "1AA" "XK_Scedilla"
.tL "2" "1AB" "XK_Tcaron"
.tL "2" "1AC" "XK_Zacute"
.tL "2" "1AE" "XK_Zcaron"
.tL "2" "1AF" "XK_Zabovedot"
.tL "2" "1B1" "XK_aogonek"
.tL "2" "1B2" "XK_ogonek"
.tL "2" "1B3" "XK_lstroke"
.tL "2" "1B5" "XK_lcaron"
.tL "2" "1B6" "XK_sacute"
.tL "2" "1B7" "XK_caron"
.tL "2" "1B9" "XK_scaron"
.tL "2" "1BA" "XK_scedilla"
.tL "2" "1BB" "XK_tcaron"
.tL "2" "1BC" "XK_zacute"
.tL "2" "1BD" "XK_doubleacute"
.tL "2" "1BE" "XK_zcaron"
.tL "2" "1BF" "XK_zabovedot"
.tL "2" "1C0" "XK_Racute"
.tL "2" "1C3" "XK_Abreve"
.tL "2" "1C5" "XK_Lacute"
.tL "2" "1C6" "XK_Cacute"
.tL "2" "1C8" "XK_Ccaron"
.tL "2" "1CA" "XK_Eogonek"
.tL "2" "1CC" "XK_Ecaron"
.tL "2" "1CF" "XK_Dcaron"
.tL "2" "1D0" "XK_Dstroke"
.tL "2" "1D1" "XK_Nacute"
.tL "2" "1D2" "XK_Ncaron"
.tL "2" "1D5" "XK_Odoubleacute"
.tL "2" "1D8" "XK_Rcaron"
.tL "2" "1D9" "XK_Uring"
.tL "2" "1DB" "XK_Udoubleacute"
.tL "2" "1DE" "XK_Tcedilla"
.tL "2" "1E0" "XK_racute"
.tL "2" "1E3" "XK_abreve"
.tL "2" "1E5" "XK_lacute"
.tL "2" "1E6" "XK_cacute"
.tL "2" "1E8" "XK_ccaron"
.tL "2" "1EA" "XK_eogonek"
.tL "2" "1EC" "XK_ecaron"
.tL "2" "1EF" "XK_dcaron"
.tL "2" "1F0" "XK_dstroke"
.tL "2" "1F1" "XK_nacute"
.tL "2" "1F2" "XK_ncaron"
.tL "2" "1F5" "XK_odoubleacute"
.tL "2" "1F8" "XK_rcaron"
.tL "2" "1F9" "XK_uring"
.tL "2" "1FB" "XK_udoubleacute"
.tL "2" "1FE" "XK_tcedilla"
.tL "2" "1FF" "XK_abovedot"
>>STRATEGY
Define symbol XK_LATIN2.
Include header file <X11/keysymdef.h>
For each KeySym in table with code 2:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf2();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_LATIN3
is defined, 
then the symbols in the table which have code 3  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "3" "2A1" "XK_Hstroke"
.tL "3" "2A6" "XK_Hcircumflex"
.tL "3" "2A9" "XK_Iabovedot"
.tL "3" "2AB" "XK_Gbreve"
.tL "3" "2AC" "XK_Jcircumflex"
.tL "3" "2B1" "XK_hstroke"
.tL "3" "2B6" "XK_hcircumflex"
.tL "3" "2B9" "XK_idotless"
.tL "3" "2BB" "XK_gbreve"
.tL "3" "2BC" "XK_jcircumflex"
.tL "3" "2C5" "XK_Cabovedot"
.tL "3" "2C6" "XK_Ccircumflex"
.tL "3" "2D5" "XK_Gabovedot"
.tL "3" "2D8" "XK_Gcircumflex"
.tL "3" "2DD" "XK_Ubreve"
.tL "3" "2DE" "XK_Scircumflex"
.tL "3" "2E5" "XK_cabovedot"
.tL "3" "2E6" "XK_ccircumflex"
.tL "3" "2F5" "XK_gabovedot"
.tL "3" "2F8" "XK_gcircumflex"
.tL "3" "2FD" "XK_ubreve"
.tL "3" "2FE" "XK_scircumflex"
>>STRATEGY
Define symbol XK_LATIN3.
Include header file <X11/keysymdef.h>
For each KeySym in table with code 3:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf3();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_LATIN4
is defined, 
then the symbols in the table which have code 4  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "4" "3A2" "XK_kra"
.tL "4" "3A2" "XK_kappa"
.tL "4" "3A3" "XK_Rcedilla"
.tL "4" "3A5" "XK_Itilde"
.tL "4" "3A6" "XK_Lcedilla"
.tL "4" "3AA" "XK_Emacron"
.tL "4" "3AB" "XK_Gcedilla"
.tL "4" "3AC" "XK_Tslash"
.tL "4" "3B3" "XK_rcedilla"
.tL "4" "3B5" "XK_itilde"
.tL "4" "3B6" "XK_lcedilla"
.tL "4" "3BA" "XK_emacron"
.tL "4" "3BB" "XK_gcedilla"
.tL "4" "3BC" "XK_tslash"
.tL "4" "3BD" "XK_ENG"
.tL "4" "3BF" "XK_eng"
.tL "4" "3C0" "XK_Amacron"
.tL "4" "3C7" "XK_Iogonek"
.tL "4" "3CC" "XK_Eabovedot"
.tL "4" "3CF" "XK_Imacron"
.tL "4" "3D1" "XK_Ncedilla"
.tL "4" "3D2" "XK_Omacron"
.tL "4" "3D3" "XK_Kcedilla"
.tL "4" "3D9" "XK_Uogonek"
.tL "4" "3DD" "XK_Utilde"
.tL "4" "3DE" "XK_Umacron"
.tL "4" "3E0" "XK_amacron"
.tL "4" "3E7" "XK_iogonek"
.tL "4" "3EC" "XK_eabovedot"
.tL "4" "3EF" "XK_imacron"
.tL "4" "3F1" "XK_ncedilla"
.tL "4" "3F2" "XK_omacron"
.tL "4" "3F3" "XK_kcedilla"
.tL "4" "3F9" "XK_uogonek"
.tL "4" "3FD" "XK_utilde"
.tL "4" "3FE" "XK_umacron"
>>STRATEGY
Define symbol XK_LATIN4.
Include header file <X11/keysymdef.h>
For each KeySym in table with code 4:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf4();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_ARABIC
is defined, 
then the symbols in the table which have code A  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "A" "5AC" "XK_Arabic_comma"
.tL "A" "5BB" "XK_Arabic_semicolon"
.tL "A" "5BF" "XK_Arabic_question_mark"
.tL "A" "5C1" "XK_Arabic_hamza"
.tL "A" "5C2" "XK_Arabic_maddaonalef"
.tL "A" "5C3" "XK_Arabic_hamzaonalef"
.tL "A" "5C4" "XK_Arabic_hamzaonwaw"
.tL "A" "5C5" "XK_Arabic_hamzaunderalef"
.tL "A" "5C6" "XK_Arabic_hamzaonyeh"
.tL "A" "5C7" "XK_Arabic_alef"
.tL "A" "5C8" "XK_Arabic_beh"
.tL "A" "5C9" "XK_Arabic_tehmarbuta"
.tL "A" "5CA" "XK_Arabic_teh"
.tL "A" "5CB" "XK_Arabic_theh"
.tL "A" "5CC" "XK_Arabic_jeem"
.tL "A" "5CD" "XK_Arabic_hah"
.tL "A" "5CE" "XK_Arabic_khah"
.tL "A" "5CF" "XK_Arabic_dal"
.tL "A" "5D0" "XK_Arabic_thal"
.tL "A" "5D1" "XK_Arabic_ra"
.tL "A" "5D2" "XK_Arabic_zain"
.tL "A" "5D3" "XK_Arabic_seen"
.tL "A" "5D4" "XK_Arabic_sheen"
.tL "A" "5D5" "XK_Arabic_sad"
.tL "A" "5D6" "XK_Arabic_dad"
.tL "A" "5D7" "XK_Arabic_tah"
.tL "A" "5D8" "XK_Arabic_zah"
.tL "A" "5D9" "XK_Arabic_ain"
.tL "A" "5DA" "XK_Arabic_ghain"
.tL "A" "5E0" "XK_Arabic_tatweel"
.tL "A" "5E1" "XK_Arabic_feh"
.tL "A" "5E2" "XK_Arabic_qaf"
.tL "A" "5E3" "XK_Arabic_kaf"
.tL "A" "5E4" "XK_Arabic_lam"
.tL "A" "5E5" "XK_Arabic_meem"
.tL "A" "5E6" "XK_Arabic_noon"
.tL "A" "5E7" "XK_Arabic_ha"
.tL "A" "5E7" "XK_Arabic_heh"
.tL "A" "5E8" "XK_Arabic_waw"
.tL "A" "5E9" "XK_Arabic_alefmaksura"
.tL "A" "5EA" "XK_Arabic_yeh"
.tL "A" "5EB" "XK_Arabic_fathatan"
.tL "A" "5EC" "XK_Arabic_dammatan"
.tL "A" "5ED" "XK_Arabic_kasratan"
.tL "A" "5EE" "XK_Arabic_fatha"
.tL "A" "5EF" "XK_Arabic_damma"
.tL "A" "5F0" "XK_Arabic_kasra"
.tL "A" "5F1" "XK_Arabic_shadda"
.tL "A" "5F2" "XK_Arabic_sukun"
.tL "A" "FF7E" "XK_Arabic_switch"
>>STRATEGY
Define symbol XK_ARABIC.
Include header file <X11/keysymdef.h>
For each KeySym in table with code A:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf5();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_CYRILLIC
is defined, 
then the symbols in the table which have code C  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "C" "6A1" "XK_Serbian_dje"
.tL "C" "6A2" "XK_Macedonia_gje"
.tL "C" "6A3" "XK_Cyrillic_io"
.tL "C" "6A4" "XK_Ukrainian_ie"
.tL "C" "6A4" "XK_Ukranian_je"
.tL "C" "6A5" "XK_Macedonia_dse"
.tL "C" "6A6" "XK_Ukrainian_i"
.tL "C" "6A6" "XK_Ukranian_i"
.tL "C" "6A7" "XK_Ukrainian_yi"
.tL "C" "6A7" "XK_Ukranian_yi"
.tL "C" "6A8" "XK_Cyrillic_je"
.tL "C" "6A8" "XK_Serbian_je"
.tL "C" "6A9" "XK_Cyrillic_lje"
.tL "C" "6A9" "XK_Serbian_lje"
.tL "C" "6AA" "XK_Cyrillic_nje"
.tL "C" "6AA" "XK_Serbian_nje"
.tL "C" "6AB" "XK_Serbian_tshe"
.tL "C" "6AC" "XK_Macedonia_kje"
.tL "C" "6AE" "XK_Byelorussian_shortu"
.tL "C" "6AF" "XK_Cyrillic_dzhe"
.tL "C" "6AF" "XK_Serbian_dze"
.tL "C" "6B0" "XK_numerosign"
.tL "C" "6B1" "XK_Serbian_DJE"
.tL "C" "6B2" "XK_Macedonia_GJE"
.tL "C" "6B3" "XK_Cyrillic_IO"
.tL "C" "6B4" "XK_Ukrainian_IE"
.tL "C" "6B4" "XK_Ukranian_JE"
.tL "C" "6B5" "XK_Macedonia_DSE"
.tL "C" "6B6" "XK_Ukrainian_I"
.tL "C" "6B6" "XK_Ukranian_I"
.tL "C" "6B7" "XK_Ukrainian_YI"
.tL "C" "6B7" "XK_Ukranian_YI"
.tL "C" "6B8" "XK_Cyrillic_JE"
.tL "C" "6B8" "XK_Serbian_JE"
.tL "C" "6B9" "XK_Cyrillic_LJE"
.tL "C" "6B9" "XK_Serbian_LJE"
.tL "C" "6BA" "XK_Cyrillic_NJE"
.tL "C" "6BA" "XK_Serbian_NJE"
.tL "C" "6BB" "XK_Serbian_TSHE"
.tL "C" "6BC" "XK_Macedonia_KJE"
.tL "C" "6BE" "XK_Byelorussian_SHORTU"
.tL "C" "6BF" "XK_Cyrillic_DZHE"
.tL "C" "6BF" "XK_Serbian_DZE"
.tL "C" "6C0" "XK_Cyrillic_yu"
.tL "C" "6C1" "XK_Cyrillic_a"
.tL "C" "6C2" "XK_Cyrillic_be"
.tL "C" "6C3" "XK_Cyrillic_tse"
.tL "C" "6C4" "XK_Cyrillic_de"
.tL "C" "6C5" "XK_Cyrillic_ie"
.tL "C" "6C6" "XK_Cyrillic_ef"
.tL "C" "6C7" "XK_Cyrillic_ghe"
.tL "C" "6C8" "XK_Cyrillic_ha"
.tL "C" "6C9" "XK_Cyrillic_i"
.tL "C" "6CA" "XK_Cyrillic_shorti"
.tL "C" "6CB" "XK_Cyrillic_ka"
.tL "C" "6CC" "XK_Cyrillic_el"
.tL "C" "6CD" "XK_Cyrillic_em"
.tL "C" "6CE" "XK_Cyrillic_en"
.tL "C" "6CF" "XK_Cyrillic_o"
.tL "C" "6D0" "XK_Cyrillic_pe"
.tL "C" "6D1" "XK_Cyrillic_ya"
.tL "C" "6D2" "XK_Cyrillic_er"
.tL "C" "6D3" "XK_Cyrillic_es"
.tL "C" "6D4" "XK_Cyrillic_te"
.tL "C" "6D5" "XK_Cyrillic_u"
.tL "C" "6D6" "XK_Cyrillic_zhe"
.tL "C" "6D7" "XK_Cyrillic_ve"
.tL "C" "6D8" "XK_Cyrillic_softsign"
.tL "C" "6D9" "XK_Cyrillic_yeru"
.tL "C" "6DA" "XK_Cyrillic_ze"
.tL "C" "6DB" "XK_Cyrillic_sha"
.tL "C" "6DC" "XK_Cyrillic_e"
.tL "C" "6DD" "XK_Cyrillic_shcha"
.tL "C" "6DE" "XK_Cyrillic_che"
.tL "C" "6DF" "XK_Cyrillic_hardsign"
.tL "C" "6E0" "XK_Cyrillic_YU"
.tL "C" "6E1" "XK_Cyrillic_A"
.tL "C" "6E2" "XK_Cyrillic_BE"
.tL "C" "6E3" "XK_Cyrillic_TSE"
.tL "C" "6E4" "XK_Cyrillic_DE"
.tL "C" "6E5" "XK_Cyrillic_IE"
.tL "C" "6E6" "XK_Cyrillic_EF"
.tL "C" "6E7" "XK_Cyrillic_GHE"
.tL "C" "6E8" "XK_Cyrillic_HA"
.tL "C" "6E9" "XK_Cyrillic_I"
.tL "C" "6EA" "XK_Cyrillic_SHORTI"
.tL "C" "6EB" "XK_Cyrillic_KA"
.tL "C" "6EC" "XK_Cyrillic_EL"
.tL "C" "6ED" "XK_Cyrillic_EM"
.tL "C" "6EE" "XK_Cyrillic_EN"
.tL "C" "6EF" "XK_Cyrillic_O"
.tL "C" "6F0" "XK_Cyrillic_PE"
.tL "C" "6F1" "XK_Cyrillic_YA"
.tL "C" "6F2" "XK_Cyrillic_ER"
.tL "C" "6F3" "XK_Cyrillic_ES"
.tL "C" "6F4" "XK_Cyrillic_TE"
.tL "C" "6F5" "XK_Cyrillic_U"
.tL "C" "6F6" "XK_Cyrillic_ZHE"
.tL "C" "6F7" "XK_Cyrillic_VE"
.tL "C" "6F8" "XK_Cyrillic_SOFTSIGN"
.tL "C" "6F9" "XK_Cyrillic_YERU"
.tL "C" "6FA" "XK_Cyrillic_ZE"
.tL "C" "6FB" "XK_Cyrillic_SHA"
.tL "C" "6FC" "XK_Cyrillic_E"
.tL "C" "6FD" "XK_Cyrillic_SHCHA"
.tL "C" "6FE" "XK_Cyrillic_CHE"
.tL "C" "6FF" "XK_Cyrillic_HARDSIGN"
>>STRATEGY
Define symbol XK_CYRILLIC.
Include header file <X11/keysymdef.h>
For each KeySym in table with code C:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf6();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_GREEK
is defined, 
then the symbols in the table which have code G  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "G" "7A1" "XK_Greek_ALPHAaccent"
.tL "G" "7A2" "XK_Greek_EPSILONaccent"
.tL "G" "7A3" "XK_Greek_ETAaccent"
.tL "G" "7A4" "XK_Greek_IOTAaccent"
.tL "G" "7A5" "XK_Greek_IOTAdiaeresis"
.tL "G" "7A7" "XK_Greek_OMICRONaccent"
.tL "G" "7A8" "XK_Greek_UPSILONaccent"
.tL "G" "7A9" "XK_Greek_UPSILONdieresis"
.tL "G" "7AB" "XK_Greek_OMEGAaccent"
.tL "G" "7AE" "XK_Greek_accentdieresis"
.tL "G" "7AF" "XK_Greek_horizbar"
.tL "G" "7B1" "XK_Greek_alphaaccent"
.tL "G" "7B2" "XK_Greek_epsilonaccent"
.tL "G" "7B3" "XK_Greek_etaaccent"
.tL "G" "7B4" "XK_Greek_iotaaccent"
.tL "G" "7B5" "XK_Greek_iotadieresis"
.tL "G" "7B6" "XK_Greek_iotaaccentdieresis"
.tL "G" "7B7" "XK_Greek_omicronaccent"
.tL "G" "7B8" "XK_Greek_upsilonaccent"
.tL "G" "7B9" "XK_Greek_upsilondieresis"
.tL "G" "7BA" "XK_Greek_upsilonaccentdieresis"
.tL "G" "7BB" "XK_Greek_omegaaccent"
.tL "G" "7C1" "XK_Greek_ALPHA"
.tL "G" "7C2" "XK_Greek_BETA"
.tL "G" "7C3" "XK_Greek_GAMMA"
.tL "G" "7C4" "XK_Greek_DELTA"
.tL "G" "7C5" "XK_Greek_EPSILON"
.tL "G" "7C6" "XK_Greek_ZETA"
.tL "G" "7C7" "XK_Greek_ETA"
.tL "G" "7C8" "XK_Greek_THETA"
.tL "G" "7C9" "XK_Greek_IOTA"
.tL "G" "7CA" "XK_Greek_KAPPA"
.tL "G" "7CB" "XK_Greek_LAMBDA"
.tL "G" "7CB" "XK_Greek_LAMDA"
.tL "G" "7CC" "XK_Greek_MU"
.tL "G" "7CD" "XK_Greek_NU"
.tL "G" "7CE" "XK_Greek_XI"
.tL "G" "7CF" "XK_Greek_OMICRON"
.tL "G" "7D0" "XK_Greek_PI"
.tL "G" "7D1" "XK_Greek_RHO"
.tL "G" "7D2" "XK_Greek_SIGMA"
.tL "G" "7D4" "XK_Greek_TAU"
.tL "G" "7D5" "XK_Greek_UPSILON"
.tL "G" "7D6" "XK_Greek_PHI"
.tL "G" "7D7" "XK_Greek_CHI"
.tL "G" "7D8" "XK_Greek_PSI"
.tL "G" "7D9" "XK_Greek_OMEGA"
.tL "G" "7E1" "XK_Greek_alpha"
.tL "G" "7E2" "XK_Greek_beta"
.tL "G" "7E3" "XK_Greek_gamma"
.tL "G" "7E4" "XK_Greek_delta"
.tL "G" "7E5" "XK_Greek_epsilon"
.tL "G" "7E6" "XK_Greek_zeta"
.tL "G" "7E7" "XK_Greek_eta"
.tL "G" "7E8" "XK_Greek_theta"
.tL "G" "7E9" "XK_Greek_iota"
.tL "G" "7EA" "XK_Greek_kappa"
.tL "G" "7EB" "XK_Greek_lambda"
.tL "G" "7EB" "XK_Greek_lamda"
.tL "G" "7EC" "XK_Greek_mu"
.tL "G" "7ED" "XK_Greek_nu"
.tL "G" "7EE" "XK_Greek_xi"
.tL "G" "7EF" "XK_Greek_omicron"
.tL "G" "7F0" "XK_Greek_pi"
.tL "G" "7F1" "XK_Greek_rho"
.tL "G" "7F2" "XK_Greek_sigma"
.tL "G" "7F3" "XK_Greek_finalsmallsigma"
.tL "G" "7F4" "XK_Greek_tau"
.tL "G" "7F5" "XK_Greek_upsilon"
.tL "G" "7F6" "XK_Greek_phi"
.tL "G" "7F7" "XK_Greek_chi"
.tL "G" "7F8" "XK_Greek_psi"
.tL "G" "7F9" "XK_Greek_omega"
.tL "G" "FF7E" "XK_Greek_switch"
>>STRATEGY
Define symbol XK_GREEK.
Include header file <X11/keysymdef.h>
For each KeySym in table with code G:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf7();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_HEBREW
is defined, 
then the symbols in the table which have code H  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "H" "CDF" "XK_hebrew_doublelowline"
.tL "H" "CE0" "XK_hebrew_aleph"
.tL "H" "CE1" "XK_hebrew_bet"
.tL "H" "CE1" "XK_hebrew_beth"
.tL "H" "CE2" "XK_hebrew_gimel"
.tL "H" "CE2" "XK_hebrew_gimmel"
.tL "H" "CE3" "XK_hebrew_dalet"
.tL "H" "CE3" "XK_hebrew_daleth"
.tL "H" "CE4" "XK_hebrew_he"
.tL "H" "CE5" "XK_hebrew_waw"
.tL "H" "CE6" "XK_hebrew_zain"
.tL "H" "CE6" "XK_hebrew_zayin"
.tL "H" "CE7" "XK_hebrew_chet"
.tL "H" "CE7" "XK_hebrew_het"
.tL "H" "CE8" "XK_hebrew_tet"
.tL "H" "CE8" "XK_hebrew_teth"
.tL "H" "CE9" "XK_hebrew_yod"
.tL "H" "CEA" "XK_hebrew_finalkaph"
.tL "H" "CEB" "XK_hebrew_kaph"
.tL "H" "CEC" "XK_hebrew_lamed"
.tL "H" "CED" "XK_hebrew_finalmem"
.tL "H" "CEE" "XK_hebrew_mem"
.tL "H" "CEF" "XK_hebrew_finalnun"
.tL "H" "CF0" "XK_hebrew_nun"
.tL "H" "CF1" "XK_hebrew_samech"
.tL "H" "CF1" "XK_hebrew_samekh"
.tL "H" "CF2" "XK_hebrew_ayin"
.tL "H" "CF3" "XK_hebrew_finalpe"
.tL "H" "CF4" "XK_hebrew_pe"
.tL "H" "CF5" "XK_hebrew_finalzade"
.tL "H" "CF5" "XK_hebrew_finalzadi"
.tL "H" "CF6" "XK_hebrew_zade"
.tL "H" "CF6" "XK_hebrew_zadi"
.tL "H" "CF7" "XK_hebrew_qoph"
.tL "H" "CF7" "XK_hebrew_kuf"
.tL "H" "CF8" "XK_hebrew_resh"
.tL "H" "CF9" "XK_hebrew_shin"
.tL "H" "CFA" "XK_hebrew_taw"
.tL "H" "CFA" "XK_hebrew_taf"
.tL "H" "FF7E" "XK_Hebrew_switch"
>>STRATEGY
Define symbol XK_HEBREW.
Include header file <X11/keysymdef.h>
For each KeySym in table with code H:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf8();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_KATAKANA
is defined, 
then the symbols in the table which have code K  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "K" "47E" "XK_overline"
.tL "K" "4A1" "XK_kana_fullstop"
.tL "K" "4A2" "XK_kana_openingbracket"
.tL "K" "4A3" "XK_kana_closingbracket"
.tL "K" "4A4" "XK_kana_comma"
.tL "K" "4A5" "XK_kana_conjunctive"
.tL "K" "4A5" "XK_kana_middledot"
.tL "K" "4A6" "XK_kana_WO"
.tL "K" "4A7" "XK_kana_a"
.tL "K" "4A8" "XK_kana_i"
.tL "K" "4A9" "XK_kana_u"
.tL "K" "4AA" "XK_kana_e"
.tL "K" "4AB" "XK_kana_o"
.tL "K" "4AC" "XK_kana_ya"
.tL "K" "4AD" "XK_kana_yu"
.tL "K" "4AE" "XK_kana_yo"
.tL "K" "4AF" "XK_kana_tsu"
.tL "K" "4AF" "XK_kana_tu"
.tL "K" "4B0" "XK_prolongedsound"
.tL "K" "4B1" "XK_kana_A"
.tL "K" "4B2" "XK_kana_I"
.tL "K" "4B3" "XK_kana_U"
.tL "K" "4B4" "XK_kana_E"
.tL "K" "4B5" "XK_kana_O"
.tL "K" "4B6" "XK_kana_KA"
.tL "K" "4B7" "XK_kana_KI"
.tL "K" "4B8" "XK_kana_KU"
.tL "K" "4B9" "XK_kana_KE"
.tL "K" "4BA" "XK_kana_KO"
.tL "K" "4BB" "XK_kana_SA"
.tL "K" "4BC" "XK_kana_SHI"
.tL "K" "4BD" "XK_kana_SU"
.tL "K" "4BE" "XK_kana_SE"
.tL "K" "4BF" "XK_kana_SO"
.tL "K" "4C0" "XK_kana_TA"
.tL "K" "4C1" "XK_kana_CHI"
.tL "K" "4C1" "XK_kana_TI"
.tL "K" "4C2" "XK_kana_TSU"
.tL "K" "4C2" "XK_kana_TU"
.tL "K" "4C3" "XK_kana_TE"
.tL "K" "4C4" "XK_kana_TO"
.tL "K" "4C5" "XK_kana_NA"
.tL "K" "4C6" "XK_kana_NI"
.tL "K" "4C7" "XK_kana_NU"
.tL "K" "4C8" "XK_kana_NE"
.tL "K" "4C9" "XK_kana_NO"
.tL "K" "4CA" "XK_kana_HA"
.tL "K" "4CB" "XK_kana_HI"
.tL "K" "4CC" "XK_kana_FU"
.tL "K" "4CC" "XK_kana_HU"
.tL "K" "4CD" "XK_kana_HE"
.tL "K" "4CE" "XK_kana_HO"
.tL "K" "4CF" "XK_kana_MA"
.tL "K" "4D0" "XK_kana_MI"
.tL "K" "4D1" "XK_kana_MU"
.tL "K" "4D2" "XK_kana_ME"
.tL "K" "4D3" "XK_kana_MO"
.tL "K" "4D4" "XK_kana_YA"
.tL "K" "4D5" "XK_kana_YU"
.tL "K" "4D6" "XK_kana_YO"
.tL "K" "4D7" "XK_kana_RA"
.tL "K" "4D8" "XK_kana_RI"
.tL "K" "4D9" "XK_kana_RU"
.tL "K" "4DA" "XK_kana_RE"
.tL "K" "4DB" "XK_kana_RO"
.tL "K" "4DC" "XK_kana_WA"
.tL "K" "4DD" "XK_kana_N"
.tL "K" "4DE" "XK_voicedsound"
.tL "K" "4DF" "XK_semivoicedsound"
.tL "K" "FF7E" "XK_kana_switch"
>>STRATEGY
Define symbol XK_KATAKANA.
Include header file <X11/keysymdef.h>
For each KeySym in table with code K:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf9();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_APL
is defined, 
then the symbols in the table which have code L  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "L" "BA3" "XK_leftcaret"
.tL "L" "BA6" "XK_rightcaret"
.tL "L" "BA8" "XK_downcaret"
.tL "L" "BA9" "XK_upcaret"
.tL "L" "BC0" "XK_overbar"
.tL "L" "BC2" "XK_downtack"
.tL "L" "BC3" "XK_upshoe"
.tL "L" "BC4" "XK_downstile"
.tL "L" "BC6" "XK_underbar"
.tL "L" "BCA" "XK_jot"
.tL "L" "BCC" "XK_quad"
.tL "L" "BCE" "XK_uptack"
.tL "L" "BCF" "XK_circle"
.tL "L" "BD3" "XK_upstile"
.tL "L" "BD6" "XK_downshoe"
.tL "L" "BD8" "XK_rightshoe"
.tL "L" "BDA" "XK_leftshoe"
.tL "L" "BDC" "XK_lefttack"
.tL "L" "BFC" "XK_righttack"
>>STRATEGY
Define symbol XK_APL.
Include header file <X11/keysymdef.h>
For each KeySym in table with code L:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf10();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_MISCELLANY
is defined, 
then the symbols in the table which have code M  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "M" "FF08" "XK_BackSpace"
.tL "M" "FF09" "XK_Tab"
.tL "M" "FF0A" "XK_Linefeed"
.tL "M" "FF0B" "XK_Clear"
.tL "M" "FF0D" "XK_Return"
.tL "M" "FF13" "XK_Pause"
.tL "M" "FF14" "XK_Scroll_Lock"
.tL "M" "FF1B" "XK_Escape"
.tL "M" "FF20" "XK_Multi_key"
.tL "M" "FF21" "XK_Kanji"
.tL "M" "FF22" "XK_Muhenkan"
.tL "M" "FF23" "XK_Henkan"
.tL "M" "FF23" "XK_Henkan_Mode"
.tL "M" "FF24" "XK_Romaji"
.tL "M" "FF25" "XK_Hiragana"
.tL "M" "FF26" "XK_Katakana"
.tL "M" "FF27" "XK_Hiragana_Katakana"
.tL "M" "FF28" "XK_Zenkaku"
.tL "M" "FF29" "XK_Hankaku"
.tL "M" "FF2A" "XK_Zenkaku_Hankaku"
.tL "M" "FF2B" "XK_Touroku"
.tL "M" "FF2C" "XK_Massyo"
.tL "M" "FF2D" "XK_Kana_Lock"
.tL "M" "FF2E" "XK_Kana_Shift"
.tL "M" "FF2F" "XK_Eisu_Shift"
.tL "M" "FF30" "XK_Eisu_toggle"
.tL "M" "FF50" "XK_Home"
.tL "M" "FF51" "XK_Left"
.tL "M" "FF52" "XK_Up"
.tL "M" "FF53" "XK_Right"
.tL "M" "FF54" "XK_Down"
.tL "M" "FF55" "XK_Prior"
.tL "M" "FF56" "XK_Next"
.tL "M" "FF57" "XK_End"
.tL "M" "FF58" "XK_Begin"
.tL "M" "FF60" "XK_Select"
.tL "M" "FF61" "XK_Print"
.tL "M" "FF62" "XK_Execute"
.tL "M" "FF63" "XK_Insert"
.tL "M" "FF65" "XK_Undo"
.tL "M" "FF66" "XK_Redo"
.tL "M" "FF67" "XK_Menu"
.tL "M" "FF68" "XK_Find"
.tL "M" "FF69" "XK_Cancel"
.tL "M" "FF6A" "XK_Help"
.tL "M" "FF6B" "XK_Break"
.tL "M" "FF7E" "XK_Mode_switch"
.tL "M" "FF7E" "XK_script_switch"
.tL "M" "FF7F" "XK_Num_Lock"
.tL "M" "FF80" "XK_KP_Space"
.tL "M" "FF89" "XK_KP_Tab"
.tL "M" "FF8D" "XK_KP_Enter"
.tL "M" "FF91" "XK_KP_F1"
.tL "M" "FF92" "XK_KP_F2"
.tL "M" "FF93" "XK_KP_F3"
.tL "M" "FF94" "XK_KP_F4"
.tL "M" "FFAA" "XK_KP_Multiply"
.tL "M" "FFAB" "XK_KP_Add"
.tL "M" "FFAC" "XK_KP_Separator"
.tL "M" "FFAD" "XK_KP_Subtract"
.tL "M" "FFAE" "XK_KP_Decimal"
.tL "M" "FFAF" "XK_KP_Divide"
.tL "M" "FFB0" "XK_KP_0"
.tL "M" "FFB1" "XK_KP_1"
.tL "M" "FFB2" "XK_KP_2"
.tL "M" "FFB3" "XK_KP_3"
.tL "M" "FFB4" "XK_KP_4"
.tL "M" "FFB5" "XK_KP_5"
.tL "M" "FFB6" "XK_KP_6"
.tL "M" "FFB7" "XK_KP_7"
.tL "M" "FFB8" "XK_KP_8"
.tL "M" "FFB9" "XK_KP_9"
.tL "M" "FFBD" "XK_KP_Equal"
.tL "M" "FFBE" "XK_F1"
.tL "M" "FFBF" "XK_F2"
.tL "M" "FFC0" "XK_F3"
.tL "M" "FFC1" "XK_F4"
.tL "M" "FFC2" "XK_F5"
.tL "M" "FFC3" "XK_F6"
.tL "M" "FFC4" "XK_F7"
.tL "M" "FFC5" "XK_F8"
.tL "M" "FFC6" "XK_F9"
.tL "M" "FFC7" "XK_F10"
.tL "M" "FFC8" "XK_F11"
.tL "M" "FFC8" "XK_L1"
.tL "M" "FFC9" "XK_F12"
.tL "M" "FFC9" "XK_L2"
.tL "M" "FFCA" "XK_F13"
.tL "M" "FFCA" "XK_L3"
.tL "M" "FFCB" "XK_F14"
.tL "M" "FFCB" "XK_L4"
.tL "M" "FFCC" "XK_F15"
.tL "M" "FFCC" "XK_L5"
.tL "M" "FFCD" "XK_F16"
.tL "M" "FFCD" "XK_L6"
.tL "M" "FFCE" "XK_F17"
.tL "M" "FFCE" "XK_L7"
.tL "M" "FFCF" "XK_F18"
.tL "M" "FFCF" "XK_L8"
.tL "M" "FFD0" "XK_F19"
.tL "M" "FFD0" "XK_L9"
.tL "M" "FFD1" "XK_F20"
.tL "M" "FFD1" "XK_L10"
.tL "M" "FFD2" "XK_F21"
.tL "M" "FFD2" "XK_R1"
.tL "M" "FFD3" "XK_F22"
.tL "M" "FFD3" "XK_R2"
.tL "M" "FFD4" "XK_F23"
.tL "M" "FFD4" "XK_R3"
.tL "M" "FFD5" "XK_F24"
.tL "M" "FFD5" "XK_R4"
.tL "M" "FFD6" "XK_F25"
.tL "M" "FFD6" "XK_R5"
.tL "M" "FFD7" "XK_F26"
.tL "M" "FFD7" "XK_R6"
.tL "M" "FFD8" "XK_F27"
.tL "M" "FFD8" "XK_R7"
.tL "M" "FFD9" "XK_F28"
.tL "M" "FFD9" "XK_R8"
.tL "M" "FFDA" "XK_F29"
.tL "M" "FFDA" "XK_R9"
.tL "M" "FFDB" "XK_F30"
.tL "M" "FFDB" "XK_R10"
.tL "M" "FFDC" "XK_F31"
.tL "M" "FFDC" "XK_R11"
.tL "M" "FFDD" "XK_F32"
.tL "M" "FFDD" "XK_R12"
.tL "M" "FFDE" "XK_F33"
.tL "M" "FFDE" "XK_R13"
.tL "M" "FFDF" "XK_F34"
.tL "M" "FFDF" "XK_R14"
.tL "M" "FFE0" "XK_F35"
.tL "M" "FFE0" "XK_R15"
.tL "M" "FFE1" "XK_Shift_L"
.tL "M" "FFE2" "XK_Shift_R"
.tL "M" "FFE3" "XK_Control_L"
.tL "M" "FFE4" "XK_Control_R"
.tL "M" "FFE5" "XK_Caps_Lock"
.tL "M" "FFE6" "XK_Shift_Lock"
.tL "M" "FFE7" "XK_Meta_L"
.tL "M" "FFE8" "XK_Meta_R"
.tL "M" "FFE9" "XK_Alt_L"
.tL "M" "FFEA" "XK_Alt_R"
.tL "M" "FFEB" "XK_Super_L"
.tL "M" "FFEC" "XK_Super_R"
.tL "M" "FFED" "XK_Hyper_L"
.tL "M" "FFEE" "XK_Hyper_R"
.tL "M" "FFFF" "XK_Delete"
>>STRATEGY
Define symbol XK_MISCELLANY.
Include header file <X11/keysymdef.h>
For each KeySym in table with code M:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf11();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_PUBLISHING
is defined, 
then the symbols in the table which have code P  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "P" "AA1" "XK_emspace"
.tL "P" "AA2" "XK_enspace"
.tL "P" "AA3" "XK_em3space"
.tL "P" "AA4" "XK_em4space"
.tL "P" "AA5" "XK_digitspace"
.tL "P" "AA6" "XK_punctspace"
.tL "P" "AA7" "XK_thinspace"
.tL "P" "AA8" "XK_hairspace"
.tL "P" "AA9" "XK_emdash"
.tL "P" "AAA" "XK_endash"
.tL "P" "AAC" "XK_signifblank"
.tL "P" "AAE" "XK_ellipsis"
.tL "P" "AAF" "XK_doubbaselinedot"
.tL "P" "AB0" "XK_onethird"
.tL "P" "AB1" "XK_twothirds"
.tL "P" "AB2" "XK_onefifth"
.tL "P" "AB3" "XK_twofifths"
.tL "P" "AB4" "XK_threefifths"
.tL "P" "AB5" "XK_fourfifths"
.tL "P" "AB6" "XK_onesixth"
.tL "P" "AB7" "XK_fivesixths"
.tL "P" "AB8" "XK_careof"
.tL "P" "ABB" "XK_figdash"
.tL "P" "ABC" "XK_leftanglebracket"
.tL "P" "ABD" "XK_decimalpoint"
.tL "P" "ABE" "XK_rightanglebracket"
.tL "P" "ABF" "XK_marker"
.tL "P" "AC3" "XK_oneeighth"
.tL "P" "AC4" "XK_threeeighths"
.tL "P" "AC5" "XK_fiveeighths"
.tL "P" "AC6" "XK_seveneighths"
.tL "P" "AC9" "XK_trademark"
.tL "P" "ACA" "XK_signaturemark"
.tL "P" "ACB" "XK_trademarkincircle"
.tL "P" "ACC" "XK_leftopentriangle"
.tL "P" "ACD" "XK_rightopentriangle"
.tL "P" "ACE" "XK_emopencircle"
.tL "P" "ACF" "XK_emopenrectangle"
.tL "P" "AD0" "XK_leftsinglequotemark"
.tL "P" "AD1" "XK_rightsinglequotemark"
.tL "P" "AD2" "XK_leftdoublequotemark"
.tL "P" "AD3" "XK_rightdoublequotemark"
.tL "P" "AD4" "XK_prescription"
.tL "P" "AD6" "XK_minutes"
.tL "P" "AD7" "XK_seconds"
.tL "P" "AD9" "XK_latincross"
.tL "P" "ADA" "XK_hexagram"
.tL "P" "ADB" "XK_filledrectbullet"
.tL "P" "ADC" "XK_filledlefttribullet"
.tL "P" "ADD" "XK_filledrighttribullet"
.tL "P" "ADE" "XK_emfilledcircle"
.tL "P" "ADF" "XK_emfilledrect"
.tL "P" "AE0" "XK_enopencircbullet"
.tL "P" "AE1" "XK_enopensquarebullet"
.tL "P" "AE2" "XK_openrectbullet"
.tL "P" "AE3" "XK_opentribulletup"
.tL "P" "AE4" "XK_opentribulletdown"
.tL "P" "AE5" "XK_openstar"
.tL "P" "AE6" "XK_enfilledcircbullet"
.tL "P" "AE7" "XK_enfilledsqbullet"
.tL "P" "AE8" "XK_filledtribulletup"
.tL "P" "AE9" "XK_filledtribulletdown"
.tL "P" "AEA" "XK_leftpointer"
.tL "P" "AEB" "XK_rightpointer"
.tL "P" "AEC" "XK_club"
.tL "P" "AED" "XK_diamond"
.tL "P" "AEE" "XK_heart"
.tL "P" "AF0" "XK_maltesecross"
.tL "P" "AF1" "XK_dagger"
.tL "P" "AF2" "XK_doubledagger"
.tL "P" "AF3" "XK_checkmark"
.tL "P" "AF4" "XK_ballotcross"
.tL "P" "AF5" "XK_musicalsharp"
.tL "P" "AF6" "XK_musicalflat"
.tL "P" "AF7" "XK_malesymbol"
.tL "P" "AF8" "XK_femalesymbol"
.tL "P" "AF9" "XK_telephone"
.tL "P" "AFA" "XK_telephonerecorder"
.tL "P" "AFB" "XK_phonographcopyright"
.tL "P" "AFC" "XK_caret"
.tL "P" "AFD" "XK_singlelowquotemark"
.tL "P" "AFE" "XK_doublelowquotemark"
.tL "P" "AFF" "XK_cursor"
>>STRATEGY
Define symbol XK_PUBLISHING.
Include header file <X11/keysymdef.h>
For each KeySym in table with code P:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf12();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_SPECIAL
is defined, 
then the symbols in the table which have code S  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "S" "9DF" "XK_blank"
.tL "S" "9E0" "XK_soliddiamond"
.tL "S" "9E1" "XK_checkerboard"
.tL "S" "9E2" "XK_ht"
.tL "S" "9E3" "XK_ff"
.tL "S" "9E4" "XK_cr"
.tL "S" "9E5" "XK_lf"
.tL "S" "9E8" "XK_nl"
.tL "S" "9E9" "XK_vt"
.tL "S" "9EA" "XK_lowrightcorner"
.tL "S" "9EB" "XK_uprightcorner"
.tL "S" "9EC" "XK_upleftcorner"
.tL "S" "9ED" "XK_lowleftcorner"
.tL "S" "9EE" "XK_crossinglines"
.tL "S" "9EF" "XK_horizlinescan1"
.tL "S" "9F0" "XK_horizlinescan3"
.tL "S" "9F1" "XK_horizlinescan5"
.tL "S" "9F2" "XK_horizlinescan7"
.tL "S" "9F3" "XK_horizlinescan9"
.tL "S" "9F4" "XK_leftt"
.tL "S" "9F5" "XK_rightt"
.tL "S" "9F6" "XK_bott"
.tL "S" "9F7" "XK_topt"
.tL "S" "9F8" "XK_vertbar"
>>STRATEGY
Define symbol XK_SPECIAL.
Include header file <X11/keysymdef.h>
For each KeySym in table with code S:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf13();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included while the feature test macro 
.S XK_TECHNICAL
is defined, 
then the symbols in the table which have code T  
are defined to have the hexadecimal values given in the table.
.tL "Code" "Value" "Name"
.tL "T" "8A1" "XK_leftradical"
.tL "T" "8A2" "XK_topleftradical"
.tL "T" "8A3" "XK_horizconnector"
.tL "T" "8A4" "XK_topintegral"
.tL "T" "8A5" "XK_botintegral"
.tL "T" "8A6" "XK_vertconnector"
.tL "T" "8A7" "XK_topleftsqbracket"
.tL "T" "8A8" "XK_botleftsqbracket"
.tL "T" "8A9" "XK_toprightsqbracket"
.tL "T" "8AA" "XK_botrightsqbracket"
.tL "T" "8AB" "XK_topleftparens"
.tL "T" "8AC" "XK_botleftparens"
.tL "T" "8AD" "XK_toprightparens"
.tL "T" "8AE" "XK_botrightparens"
.tL "T" "8AF" "XK_leftmiddlecurlybrace"
.tL "T" "8B0" "XK_rightmiddlecurlybrace"
.tL "T" "8B1" "XK_topleftsummation"
.tL "T" "8B2" "XK_botleftsummation"
.tL "T" "8B3" "XK_topvertsummationconnector"
.tL "T" "8B4" "XK_botvertsummationconnector"
.tL "T" "8B5" "XK_toprightsummation"
.tL "T" "8B6" "XK_botrightsummation"
.tL "T" "8B7" "XK_rightmiddlesummation"
.tL "T" "8BC" "XK_lessthanequal"
.tL "T" "8BD" "XK_notequal"
.tL "T" "8BE" "XK_greaterthanequal"
.tL "T" "8BF" "XK_integral"
.tL "T" "8C0" "XK_therefore"
.tL "T" "8C1" "XK_variation"
.tL "T" "8C2" "XK_infinity"
.tL "T" "8C5" "XK_nabla"
.tL "T" "8C8" "XK_approximate"
.tL "T" "8C9" "XK_similarequal"
.tL "T" "8CD" "XK_ifonlyif"
.tL "T" "8CE" "XK_implies"
.tL "T" "8CF" "XK_identical"
.tL "T" "8D6" "XK_radical"
.tL "T" "8DA" "XK_includedin"
.tL "T" "8DB" "XK_includes"
.tL "T" "8DC" "XK_intersection"
.tL "T" "8DD" "XK_union"
.tL "T" "8DE" "XK_logicaland"
.tL "T" "8DF" "XK_logicalor"
.tL "T" "8EF" "XK_partialderivative"
.tL "T" "8F6" "XK_function"
.tL "T" "8FB" "XK_leftarrow"
.tL "T" "8FC" "XK_uparrow"
.tL "T" "8FD" "XK_rightarrow"
.tL "T" "8FE" "XK_downarrow"
>>STRATEGY
Define symbol XK_TECHNICAL.
Include header file <X11/keysymdef.h>
For each KeySym in table with code T:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf14();

>>ASSERTION Good A
When the header file <X11/keysymdef.h> is included, 
then the symbols in the table
are defined to have the hexadecimal values given in the table.
.tL "Value" "Name"
.tL "FFFFFF" "XK_VoidSymbol"
>>STRATEGY
Include header file <X11/keysymdef.h>
For each KeySym in table:
	Verify that the symbol is defined using #ifdef.
	Verify that the symbol has the expected value using #if.
>>CODE 

	kysymdf0();
