diff --git a/compile-tests/testcases/t04/t048/t0485/expected.xkb b/compile-tests/testcases/t04/t048/t0485/expected.xkb index 7cd394d..387f121 100644 --- a/compile-tests/testcases/t04/t048/t0485/expected.xkb +++ b/compile-tests/testcases/t04/t048/t0485/expected.xkb @@ -64,7 +64,7 @@ xkb_keymap { }; key <02> { type[Group1] = "TWO_LEVEL", - symbols[Group1] = [ 0x01000001, 0x01000001 ] + symbols[Group1] = [ U1, U1 ] }; key <03> { type[Group1] = "TWO_LEVEL", @@ -72,7 +72,7 @@ xkb_keymap { }; key <04> { type[Group1] = "TWO_LEVEL", - symbols[Group1] = [ 0x0100001f, 0x0100001f ] + symbols[Group1] = [ U1f, U1f ] }; key <05> { type[Group1] = "TWO_LEVEL", @@ -88,11 +88,11 @@ xkb_keymap { }; key <08> { type[Group1] = "TWO_LEVEL", - symbols[Group1] = [ 0x01000080, 0x01000080 ] + symbols[Group1] = [ U80, U80 ] }; key <09> { type[Group1] = "TWO_LEVEL", - symbols[Group1] = [ 0x0100009f, 0x0100009f ] + symbols[Group1] = [ U9f, U9f ] }; key <10> { type[Group1] = "TWO_LEVEL", diff --git a/generator/src/keysyms.rs b/generator/src/keysyms.rs index 299bb1a..3d280f0 100644 --- a/generator/src/keysyms.rs +++ b/generator/src/keysyms.rs @@ -59,7 +59,7 @@ fn generate_output() -> String { #[derive(Debug)] struct KeysymInfo { keysym: u32, - definitive_name: Option<&'static str>, + definitive_name: Option>, code_point: Option, lower: Option, upper: Option, @@ -221,7 +221,7 @@ fn handle_yaml(output: &mut IndexMap) { let Some(info) = output.get_mut(&keysym) else { unreachable!("keysym.yaml contains keysym 0x{keysym:x} not present in the header"); }; - info.definitive_name = Some(name); + info.definitive_name = Some(Cow::Borrowed(name)); info.code_point = code_point; info.lower = lower; info.upper = upper; @@ -232,6 +232,11 @@ fn handle_yaml(output: &mut IndexMap) { info.is_upper = c.is_uppercase(); } } + for info in output.values_mut() { + if info.definitive_name.is_none() && info.names.len() == 1 { + info.definitive_name = Some(info.names[0].name.clone()); + } + } } fn validate(output: &IndexMap) { @@ -312,7 +317,7 @@ fn validate(output: &IndexMap) { for v in output.values() { let mut have_definitive_name = false; for name in &v.names { - if name.name == v.definitive_name.unwrap() { + if name.name == **v.definitive_name.as_ref().unwrap() { have_definitive_name = true; } if let Some(alias) = name.alias_for { @@ -341,7 +346,7 @@ fn assign_indices(output: &mut IndexMap) { for ks in output.values_mut() { for name in &mut ks.names { name.idx = i; - if name.name == ks.definitive_name.unwrap() { + if name.name == **ks.definitive_name.as_ref().unwrap() { ks.definitive_idx = i; } i += 1; @@ -548,6 +553,9 @@ fn generate_datas(output: &IndexMap) -> String { if name.idx != v.definitive_idx { res.push_str(" | IS_SECONDARY_IDX"); } + if name.deprecated { + res.push_str(" | IS_DEPRECATED"); + } res.push_str(",\n"); res.push_str(" },\n"); } diff --git a/kbvm/src/keysym.rs b/kbvm/src/keysym.rs index cd1f1aa..758c679 100644 --- a/kbvm/src/keysym.rs +++ b/kbvm/src/keysym.rs @@ -88,6 +88,7 @@ const KEYSYM_IS_CHAR: u8 = 1 << 1; const IS_LOWER: u8 = 1 << 2; const IS_UPPER: u8 = 1 << 3; const IS_SECONDARY_IDX: u8 = 1 << 4; +const IS_DEPRECATED: u8 = 1 << 5; #[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] #[repr(Rust, packed)] @@ -233,18 +234,15 @@ impl Keysym { if matches!(c, 0x08..=0x0b | 0x0d | 0x1b) { return Self(c | 0xff00); } - if matches!(c, 0x7f) { - return syms::Delete; - } - if matches!(c, 0xfdd0..=0xfdef) { + if matches!(c, 0x0) { return syms::NoSymbol; } - if matches!(c & 0xffff, 0xfffe..=0xffff) { - return syms::NoSymbol; + if matches!(c, 0x7f) { + return syms::Delete; } let idx = CHAR_TO_BESPOKE_IDX[&char]; let data = &DATAS[idx as usize]; - if data.flags & HAS_CHAR != 0 { + if data.flags & (HAS_CHAR | IS_DEPRECATED) == HAS_CHAR { let sym = Self(data.keysym_or_definitive_idx); if data.flags & KEYSYM_IS_CHAR != 0 && sym.0 == char as u32 { return sym; @@ -622,15 +620,11 @@ fn from_str(s: &[u8]) -> Option { } fn keysym_from_cp(cp: u32) -> Option { - let v = match cp { - 0x000000..=0x00001f => None, - 0x000020..=0x00007e => Some(cp), - 0x00007f..=0x00009f => None, - 0x0000a0..=0x0000ff => Some(cp), - 0x000100..=0x10ffff => Some(cp | 0x01_00_00_00), - 0x110000.. => None, - }; - v.map(Keysym) + if matches!(cp, 0x000100..=0x10ffff) { + Some(Keysym(cp | 0x01_00_00_00)) + } else { + char::from_u32(cp).map(Keysym::from_char) + } } impl FromStr for Keysym { diff --git a/kbvm/src/keysym/generated.rs b/kbvm/src/keysym/generated.rs index d0ec981..975d2b6 100644 --- a/kbvm/src/keysym/generated.rs +++ b/kbvm/src/keysym/generated.rs @@ -1,37 +1,37 @@ use super::*; #[cfg(test)] -pub(super) const LEN: usize = 2449; +pub(super) const LEN: usize = 2493; pub(super) const LONGEST_NAME: usize = 27; -pub(super) static NAMES: &str = "NoSymbolspaceexclamquotedblnumbersigndollarpercentampersandapostrophequoterightparenleftparenrightasteriskpluscommaminusperiodslash0123456789colonsemicolonlessequalgreaterquestionatABCDEFGHIJKLMNOPQRSTUVWXYZbracketleftbackslashbracketrightasciicircumunderscoregravequoteleftabcdefghijklmnopqrstuvwxyzbraceleftbarbracerightasciitildenobreakspaceexclamdowncentsterlingcurrencyyenbrokenbarsectiondiaeresiscopyrightordfeminineguillemotleftguillemetleftnotsignhyphenregisteredmacrondegreeplusminustwosuperiorthreesuperioracutemuparagraphperiodcenteredcedillaonesuperiormasculineordmasculineguillemotrightguillemetrightonequarteronehalfthreequartersquestiondownAgraveAacuteAcircumflexAtildeAdiaeresisAringAECcedillaEgraveEacuteEcircumflexEdiaeresisIgraveIacuteIcircumflexIdiaeresisETHEthNtildeOgraveOacuteOcircumflexOtildeOdiaeresismultiplyOslashOobliqueUgraveUacuteUcircumflexUdiaeresisYacuteTHORNThornssharpagraveaacuteacircumflexatildeadiaeresisaringaeccedillaegraveeacuteecircumflexediaeresisigraveiacuteicircumflexidiaeresisethntildeograveoacuteocircumflexotildeodiaeresisdivisionoslashoobliqueugraveuacuteucircumflexudiaeresisyacutethornydiaeresisAogonekbreveLstrokeLcaronSacuteScaronScedillaTcaronZacuteZcaronZabovedotaogonekogoneklstrokelcaronsacutecaronscaronscedillatcaronzacutedoubleacutezcaronzabovedotRacuteAbreveLacuteCacuteCcaronEogonekEcaronDcaronDstrokeNacuteNcaronOdoubleacuteRcaronUringUdoubleacuteTcedillaracuteabrevelacutecacuteccaroneogonekecarondcarondstrokenacutencaronodoubleacutercaronuringudoubleacutetcedillaabovedotHstrokeHcircumflexIabovedotGbreveJcircumflexhstrokehcircumflexidotlessgbrevejcircumflexCabovedotCcircumflexGabovedotGcircumflexUbreveScircumflexcabovedotccircumflexgabovedotgcircumflexubrevescircumflexkrakappaRcedillaItildeLcedillaEmacronGcedillaTslashrcedillaitildelcedillaemacrongcedillatslashENGengAmacronIogonekEabovedotImacronNcedillaOmacronKcedillaUogonekUtildeUmacronamacroniogonekeabovedotimacronncedillaomacronkcedillauogonekutildeumacronoverlinekana_fullstopkana_openingbracketkana_closingbracketkana_commakana_conjunctivekana_middledotkana_WOkana_akana_ikana_ukana_ekana_okana_yakana_yukana_yokana_tsukana_tuprolongedsoundkana_Akana_Ikana_Ukana_Ekana_Okana_KAkana_KIkana_KUkana_KEkana_KOkana_SAkana_SHIkana_SUkana_SEkana_SOkana_TAkana_CHIkana_TIkana_TSUkana_TUkana_TEkana_TOkana_NAkana_NIkana_NUkana_NEkana_NOkana_HAkana_HIkana_FUkana_HUkana_HEkana_HOkana_MAkana_MIkana_MUkana_MEkana_MOkana_YAkana_YUkana_YOkana_RAkana_RIkana_RUkana_REkana_ROkana_WAkana_NvoicedsoundsemivoicedsoundArabic_commaArabic_semicolonArabic_question_markArabic_hamzaArabic_maddaonalefArabic_hamzaonalefArabic_hamzaonwawArabic_hamzaunderalefArabic_hamzaonyehArabic_alefArabic_behArabic_tehmarbutaArabic_tehArabic_thehArabic_jeemArabic_hahArabic_khahArabic_dalArabic_thalArabic_raArabic_zainArabic_seenArabic_sheenArabic_sadArabic_dadArabic_tahArabic_zahArabic_ainArabic_ghainArabic_tatweelArabic_fehArabic_qafArabic_kafArabic_lamArabic_meemArabic_noonArabic_haArabic_hehArabic_wawArabic_alefmaksuraArabic_yehArabic_fathatanArabic_dammatanArabic_kasratanArabic_fathaArabic_dammaArabic_kasraArabic_shaddaArabic_sukunSerbian_djeMacedonia_gjeCyrillic_ioUkrainian_ieUkranian_jeMacedonia_dseUkrainian_iUkranian_iUkrainian_yiUkranian_yiCyrillic_jeSerbian_jeCyrillic_ljeSerbian_ljeCyrillic_njeSerbian_njeSerbian_tsheMacedonia_kjeUkrainian_ghe_with_upturnByelorussian_shortuCyrillic_dzheSerbian_dzenumerosignSerbian_DJEMacedonia_GJECyrillic_IOUkrainian_IEUkranian_JEMacedonia_DSEUkrainian_IUkranian_IUkrainian_YIUkranian_YICyrillic_JESerbian_JECyrillic_LJESerbian_LJECyrillic_NJESerbian_NJESerbian_TSHEMacedonia_KJEUkrainian_GHE_WITH_UPTURNByelorussian_SHORTUCyrillic_DZHESerbian_DZECyrillic_yuCyrillic_aCyrillic_beCyrillic_tseCyrillic_deCyrillic_ieCyrillic_efCyrillic_gheCyrillic_haCyrillic_iCyrillic_shortiCyrillic_kaCyrillic_elCyrillic_emCyrillic_enCyrillic_oCyrillic_peCyrillic_yaCyrillic_erCyrillic_esCyrillic_teCyrillic_uCyrillic_zheCyrillic_veCyrillic_softsignCyrillic_yeruCyrillic_zeCyrillic_shaCyrillic_eCyrillic_shchaCyrillic_cheCyrillic_hardsignCyrillic_YUCyrillic_ACyrillic_BECyrillic_TSECyrillic_DECyrillic_IECyrillic_EFCyrillic_GHECyrillic_HACyrillic_ICyrillic_SHORTICyrillic_KACyrillic_ELCyrillic_EMCyrillic_ENCyrillic_OCyrillic_PECyrillic_YACyrillic_ERCyrillic_ESCyrillic_TECyrillic_UCyrillic_ZHECyrillic_VECyrillic_SOFTSIGNCyrillic_YERUCyrillic_ZECyrillic_SHACyrillic_ECyrillic_SHCHACyrillic_CHECyrillic_HARDSIGNGreek_ALPHAaccentGreek_EPSILONaccentGreek_ETAaccentGreek_IOTAaccentGreek_IOTAdieresisGreek_IOTAdiaeresisGreek_OMICRONaccentGreek_UPSILONaccentGreek_UPSILONdieresisGreek_OMEGAaccentGreek_accentdieresisGreek_horizbarGreek_alphaaccentGreek_epsilonaccentGreek_etaaccentGreek_iotaaccentGreek_iotadieresisGreek_iotaaccentdieresisGreek_omicronaccentGreek_upsilonaccentGreek_upsilondieresisGreek_upsilonaccentdieresisGreek_omegaaccentGreek_ALPHAGreek_BETAGreek_GAMMAGreek_DELTAGreek_EPSILONGreek_ZETAGreek_ETAGreek_THETAGreek_IOTAGreek_KAPPAGreek_LAMDAGreek_LAMBDAGreek_MUGreek_NUGreek_XIGreek_OMICRONGreek_PIGreek_RHOGreek_SIGMAGreek_TAUGreek_UPSILONGreek_PHIGreek_CHIGreek_PSIGreek_OMEGAGreek_alphaGreek_betaGreek_gammaGreek_deltaGreek_epsilonGreek_zetaGreek_etaGreek_thetaGreek_iotaGreek_kappaGreek_lamdaGreek_lambdaGreek_muGreek_nuGreek_xiGreek_omicronGreek_piGreek_rhoGreek_sigmaGreek_finalsmallsigmaGreek_tauGreek_upsilonGreek_phiGreek_chiGreek_psiGreek_omegaleftradicaltopleftradicalhorizconnectortopintegralbotintegralvertconnectortopleftsqbracketbotleftsqbrackettoprightsqbracketbotrightsqbrackettopleftparensbotleftparenstoprightparensbotrightparensleftmiddlecurlybracerightmiddlecurlybracetopleftsummationbotleftsummationtopvertsummationconnectorbotvertsummationconnectortoprightsummationbotrightsummationrightmiddlesummationlessthanequalnotequalgreaterthanequalintegralthereforevariationinfinitynablaapproximatesimilarequalifonlyifimpliesidenticalradicalincludedinincludesintersectionunionlogicalandlogicalorpartialderivativefunctionleftarrowuparrowrightarrowdownarrowblanksoliddiamondcheckerboardhtffcrlfnlvtlowrightcorneruprightcornerupleftcornerlowleftcornercrossinglineshorizlinescan1horizlinescan3horizlinescan5horizlinescan7horizlinescan9lefttrighttbotttoptvertbaremspaceenspaceem3spaceem4spacedigitspacepunctspacethinspacehairspaceemdashendashsignifblankellipsisdoubbaselinedotonethirdtwothirdsonefifthtwofifthsthreefifthsfourfifthsonesixthfivesixthscareoffigdashleftanglebracketdecimalpointrightanglebracketmarkeroneeighththreeeighthsfiveeighthsseveneighthstrademarksignaturemarktrademarkincircleleftopentrianglerightopentriangleemopencircleemopenrectangleleftsinglequotemarkrightsinglequotemarkleftdoublequotemarkrightdoublequotemarkprescriptionpermilleminutessecondslatincrosshexagramfilledrectbulletfilledlefttribulletfilledrighttribulletemfilledcircleemfilledrectenopencircbulletenopensquarebulletopenrectbulletopentribulletupopentribulletdownopenstarenfilledcircbulletenfilledsqbulletfilledtribulletupfilledtribulletdownleftpointerrightpointerclubdiamondheartmaltesecrossdaggerdoubledaggercheckmarkballotcrossmusicalsharpmusicalflatmalesymbolfemalesymboltelephonetelephonerecorderphonographcopyrightcaretsinglelowquotemarkdoublelowquotemarkcursorleftcaretrightcaretdowncaretupcaretoverbardowntackupshoedownstileunderbarjotquaduptackcircleupstiledownshoerightshoeleftshoelefttackrighttackhebrew_doublelowlinehebrew_alephhebrew_bethebrew_bethhebrew_gimelhebrew_gimmelhebrew_dalethebrew_dalethhebrew_hehebrew_wawhebrew_zainhebrew_zayinhebrew_chethebrew_hethebrew_tethebrew_tethhebrew_yodhebrew_finalkaphhebrew_kaphhebrew_lamedhebrew_finalmemhebrew_memhebrew_finalnunhebrew_nunhebrew_samechhebrew_samekhhebrew_ayinhebrew_finalpehebrew_pehebrew_finalzadehebrew_finalzadihebrew_zadehebrew_zadihebrew_qophhebrew_kufhebrew_reshhebrew_shinhebrew_tawhebrew_tafThai_kokaiThai_khokhaiThai_khokhuatThai_khokhwaiThai_khokhonThai_khorakhangThai_ngonguThai_chochanThai_chochingThai_chochangThai_sosoThai_chochoeThai_yoyingThai_dochadaThai_topatakThai_thothanThai_thonangmonthoThai_thophuthaoThai_nonenThai_dodekThai_totaoThai_thothungThai_thothahanThai_thothongThai_nonuThai_bobaimaiThai_poplaThai_phophungThai_fofaThai_phophanThai_fofanThai_phosamphaoThai_momaThai_yoyakThai_roruaThai_ruThai_lolingThai_luThai_wowaenThai_sosalaThai_sorusiThai_sosuaThai_hohipThai_lochulaThai_oangThai_honokhukThai_paiyannoiThai_saraaThai_maihanakatThai_saraaaThai_saraamThai_saraiThai_saraiiThai_saraueThai_saraueeThai_sarauThai_sarauuThai_phinthuThai_maihanakat_maithoThai_bahtThai_saraeThai_saraaeThai_saraoThai_saraaimaimuanThai_saraaimaimalaiThai_lakkhangyaoThai_maiyamokThai_maitaikhuThai_maiekThai_maithoThai_maitriThai_maichattawaThai_thanthakhatThai_nikhahitThai_leksunThai_leknungThai_leksongThai_leksamThai_leksiThai_lekhaThai_lekhokThai_lekchetThai_lekpaetThai_lekkaoHangul_KiyeogHangul_SsangKiyeogHangul_KiyeogSiosHangul_NieunHangul_NieunJieujHangul_NieunHieuhHangul_DikeudHangul_SsangDikeudHangul_RieulHangul_RieulKiyeogHangul_RieulMieumHangul_RieulPieubHangul_RieulSiosHangul_RieulTieutHangul_RieulPhieufHangul_RieulHieuhHangul_MieumHangul_PieubHangul_SsangPieubHangul_PieubSiosHangul_SiosHangul_SsangSiosHangul_IeungHangul_JieujHangul_SsangJieujHangul_CieucHangul_KhieuqHangul_TieutHangul_PhieufHangul_HieuhHangul_AHangul_AEHangul_YAHangul_YAEHangul_EOHangul_EHangul_YEOHangul_YEHangul_OHangul_WAHangul_WAEHangul_OEHangul_YOHangul_UHangul_WEOHangul_WEHangul_WIHangul_YUHangul_EUHangul_YIHangul_IHangul_J_KiyeogHangul_J_SsangKiyeogHangul_J_KiyeogSiosHangul_J_NieunHangul_J_NieunJieujHangul_J_NieunHieuhHangul_J_DikeudHangul_J_RieulHangul_J_RieulKiyeogHangul_J_RieulMieumHangul_J_RieulPieubHangul_J_RieulSiosHangul_J_RieulTieutHangul_J_RieulPhieufHangul_J_RieulHieuhHangul_J_MieumHangul_J_PieubHangul_J_PieubSiosHangul_J_SiosHangul_J_SsangSiosHangul_J_IeungHangul_J_JieujHangul_J_CieucHangul_J_KhieuqHangul_J_TieutHangul_J_PhieufHangul_J_HieuhHangul_RieulYeorinHieuhHangul_SunkyeongeumMieumHangul_SunkyeongeumPieubHangul_PanSiosHangul_KkogjiDalrinIeungHangul_SunkyeongeumPhieufHangul_YeorinHieuhHangul_AraeAHangul_AraeAEHangul_J_PanSiosHangul_J_KkogjiDalrinIeungHangul_J_YeorinHieuhKorean_WonOEoeYdiaeresisEuroSign3270_Duplicate3270_FieldMark3270_Right23270_Left23270_BackTab3270_EraseEOF3270_EraseInput3270_Reset3270_Quit3270_PA13270_PA23270_PA33270_Test3270_Attn3270_CursorBlink3270_AltCursor3270_KeyClick3270_Jump3270_Ident3270_Rule3270_Copy3270_Play3270_Setup3270_Record3270_ChangeScreen3270_DeleteWord3270_ExSelect3270_CursorSelect3270_PrintScreen3270_EnterISO_LockISO_Level2_LatchISO_Level3_ShiftISO_Level3_LatchISO_Level3_LockISO_Group_LatchISO_Group_LockISO_Next_GroupISO_Next_Group_LockISO_Prev_GroupISO_Prev_Group_LockISO_First_GroupISO_First_Group_LockISO_Last_GroupISO_Last_Group_LockISO_Level5_ShiftISO_Level5_LatchISO_Level5_LockISO_Left_TabISO_Move_Line_UpISO_Move_Line_DownISO_Partial_Line_UpISO_Partial_Line_DownISO_Partial_Space_LeftISO_Partial_Space_RightISO_Set_Margin_LeftISO_Set_Margin_RightISO_Release_Margin_LeftISO_Release_Margin_RightISO_Release_Both_MarginsISO_Fast_Cursor_LeftISO_Fast_Cursor_RightISO_Fast_Cursor_UpISO_Fast_Cursor_DownISO_Continuous_UnderlineISO_Discontinuous_UnderlineISO_EmphasizeISO_Center_ObjectISO_Enterdead_gravedead_acutedead_circumflexdead_tildedead_perispomenidead_macrondead_brevedead_abovedotdead_diaeresisdead_aboveringdead_doubleacutedead_carondead_cedilladead_ogonekdead_iotadead_voiced_sounddead_semivoiced_sounddead_belowdotdead_hookdead_horndead_strokedead_abovecommadead_psilidead_abovereversedcommadead_dasiadead_doublegravedead_belowringdead_belowmacrondead_belowcircumflexdead_belowtildedead_belowbrevedead_belowdiaeresisdead_invertedbrevedead_belowcommadead_currencyAccessX_EnableAccessX_Feedback_EnableRepeatKeys_EnableSlowKeys_EnableBounceKeys_EnableStickyKeys_EnableMouseKeys_EnableMouseKeys_Accel_EnableOverlay1_EnableOverlay2_EnableAudibleBell_Enabledead_adead_Adead_edead_Edead_idead_Idead_odead_Odead_udead_Udead_small_schwadead_schwadead_capital_schwadead_SCHWAdead_greekdead_hamzadead_lowlinedead_aboveverticallinedead_belowverticallinedead_longsolidusoverlaychChCHc_hC_hC_HFirst_Virtual_ScreenPrev_Virtual_ScreenNext_Virtual_ScreenLast_Virtual_ScreenTerminate_ServerPointer_LeftPointer_RightPointer_UpPointer_DownPointer_UpLeftPointer_UpRightPointer_DownLeftPointer_DownRightPointer_Button_DfltPointer_Button1Pointer_Button2Pointer_Button3Pointer_Button4Pointer_Button5Pointer_DblClick_DfltPointer_DblClick1Pointer_DblClick2Pointer_DblClick3Pointer_DblClick4Pointer_DblClick5Pointer_Drag_DfltPointer_Drag1Pointer_Drag2Pointer_Drag3Pointer_Drag4Pointer_EnableKeysPointer_AcceleratePointer_DfltBtnNextPointer_DfltBtnPrevPointer_Drag5BackSpaceTabLinefeedClearReturnPauseScroll_LockSys_ReqEscapeMulti_keySunComposeKanjiMuhenkanHenkan_ModeHenkanRomajiHiraganaKatakanaHiragana_KatakanaZenkakuHankakuZenkaku_HankakuTourokuMassyoKana_LockKana_ShiftEisu_ShiftEisu_toggleHangulHangul_StartHangul_EndHangul_HanjaHangul_JamoHangul_RomajaCodeinputKanji_BangouHangul_CodeinputHangul_JeonjaHangul_BanjaHangul_PreHanjaHangul_PostHanjaSingleCandidateHangul_SingleCandidateMultipleCandidateZen_KohoHangul_MultipleCandidatePreviousCandidateMae_KohoHangul_PreviousCandidateHangul_SpecialHomeLeftUpRightDownPriorPage_UpSunPageUpNextPage_DownSunPageDownEndBeginSelectPrintSunPrint_ScreenExecuteInsertUndoSunUndoRedoSunAgainMenuFindSunFindCancelSunStopHelpBreakMode_switchscript_switchISO_Group_Shiftkana_switchArabic_switchGreek_switchHebrew_switchHangul_switchSunAltGraphNum_LockKP_SpaceKP_TabKP_EnterKP_F1KP_F2KP_F3KP_F4KP_HomeKP_LeftKP_UpKP_RightKP_DownKP_PriorKP_Page_UpKP_NextKP_Page_DownKP_EndKP_BeginKP_InsertKP_DeleteKP_MultiplyKP_AddKP_SeparatorKP_SubtractKP_DecimalKP_DivideKP_0KP_1KP_2KP_3KP_4KP_5KP_6KP_7KP_8KP_9KP_EqualF1F2F3F4F5F6F7F8F9F10F11L1F12L2F13L3F14L4F15L5F16L6F17L7F18L8F19L9F20L10F21R1F22R2F23R3F24R4F25R5F26R6F27R7F28R8F29R9F30R10F31R11F32R12F33R13F34R14F35R15Shift_LShift_RControl_LControl_RCaps_LockShift_LockMeta_LMeta_RAlt_LAlt_RSuper_LSuper_RHyper_LHyper_Rbraille_dot_1braille_dot_2braille_dot_3braille_dot_4braille_dot_5braille_dot_6braille_dot_7braille_dot_8braille_dot_9braille_dot_10DeleteVoidSymbolIbreveibreveWcircumflexwcircumflexYcircumflexycircumflexSCHWAObarredOhornohornUhornuhornZstrokezstrokeEZHOcaronocaronGcarongcaronschwaobarredezhcombining_gravecombining_acutecombining_tildecombining_hookcombining_belowdotCyrillic_GHE_barCyrillic_ghe_barCyrillic_ZHE_descenderCyrillic_zhe_descenderCyrillic_KA_descenderCyrillic_ka_descenderCyrillic_KA_vertstrokeCyrillic_ka_vertstrokeCyrillic_EN_descenderCyrillic_en_descenderCyrillic_U_straightCyrillic_u_straightCyrillic_U_straight_barCyrillic_u_straight_barCyrillic_HA_descenderCyrillic_ha_descenderCyrillic_CHE_descenderCyrillic_che_descenderCyrillic_CHE_vertstrokeCyrillic_che_vertstrokeCyrillic_SHHACyrillic_shhaCyrillic_SCHWACyrillic_schwaCyrillic_I_macronCyrillic_i_macronCyrillic_O_barCyrillic_o_barCyrillic_U_macronCyrillic_u_macronArmenian_AYBArmenian_BENArmenian_GIMArmenian_DAArmenian_YECHArmenian_ZAArmenian_EArmenian_ATArmenian_TOArmenian_ZHEArmenian_INIArmenian_LYUNArmenian_KHEArmenian_TSAArmenian_KENArmenian_HOArmenian_DZAArmenian_GHATArmenian_TCHEArmenian_MENArmenian_HIArmenian_NUArmenian_SHAArmenian_VOArmenian_CHAArmenian_PEArmenian_JEArmenian_RAArmenian_SEArmenian_VEVArmenian_TYUNArmenian_REArmenian_TSOArmenian_VYUNArmenian_PYURArmenian_KEArmenian_OArmenian_FEArmenian_apostropheArmenian_accentArmenian_sheshtArmenian_exclamArmenian_amanakArmenian_separation_markArmenian_butArmenian_questionArmenian_paruykArmenian_aybArmenian_benArmenian_gimArmenian_daArmenian_yechArmenian_zaArmenian_eArmenian_atArmenian_toArmenian_zheArmenian_iniArmenian_lyunArmenian_kheArmenian_tsaArmenian_kenArmenian_hoArmenian_dzaArmenian_ghatArmenian_tcheArmenian_menArmenian_hiArmenian_nuArmenian_shaArmenian_voArmenian_chaArmenian_peArmenian_jeArmenian_raArmenian_seArmenian_vevArmenian_tyunArmenian_reArmenian_tsoArmenian_vyunArmenian_pyurArmenian_keArmenian_oArmenian_feArmenian_ligature_ewArmenian_full_stopArmenian_verjaketArmenian_hyphenArmenian_yentamnaArabic_madda_aboveArabic_hamza_aboveArabic_hamza_belowArabic_0Arabic_1Arabic_2Arabic_3Arabic_4Arabic_5Arabic_6Arabic_7Arabic_8Arabic_9Arabic_percentArabic_superscript_alefArabic_ttehArabic_pehArabic_tchehArabic_ddalArabic_rrehArabic_jehArabic_vehArabic_kehehArabic_gafArabic_noon_ghunnaArabic_heh_doachashmeeArabic_heh_goalFarsi_yehArabic_farsi_yehArabic_yeh_bareeArabic_fullstopFarsi_0Farsi_1Farsi_2Farsi_3Farsi_4Farsi_5Farsi_6Farsi_7Farsi_8Farsi_9Sinh_ngSinh_h2Sinh_aSinh_aaSinh_aeSinh_aeeSinh_iSinh_iiSinh_uSinh_uuSinh_riSinh_riiSinh_luSinh_luuSinh_eSinh_eeSinh_aiSinh_oSinh_ooSinh_auSinh_kaSinh_khaSinh_gaSinh_ghaSinh_ng2Sinh_ngaSinh_caSinh_chaSinh_jaSinh_jhaSinh_nyaSinh_jnyaSinh_njaSinh_ttaSinh_tthaSinh_ddaSinh_ddhaSinh_nnaSinh_nddaSinh_thaSinh_thhaSinh_dhaSinh_dhhaSinh_naSinh_ndhaSinh_paSinh_phaSinh_baSinh_bhaSinh_maSinh_mbaSinh_yaSinh_raSinh_laSinh_vaSinh_shaSinh_sshaSinh_saSinh_haSinh_llaSinh_faSinh_alSinh_aa2Sinh_ae2Sinh_aee2Sinh_i2Sinh_ii2Sinh_u2Sinh_uu2Sinh_ru2Sinh_e2Sinh_ee2Sinh_ai2Sinh_o2Sinh_oo2Sinh_au2Sinh_lu2Sinh_ruu2Sinh_luu2Sinh_kunddaliyaGeorgian_anGeorgian_banGeorgian_ganGeorgian_donGeorgian_enGeorgian_vinGeorgian_zenGeorgian_tanGeorgian_inGeorgian_kanGeorgian_lasGeorgian_manGeorgian_narGeorgian_onGeorgian_parGeorgian_zharGeorgian_raeGeorgian_sanGeorgian_tarGeorgian_unGeorgian_pharGeorgian_kharGeorgian_ghanGeorgian_qarGeorgian_shinGeorgian_chinGeorgian_canGeorgian_jilGeorgian_cilGeorgian_charGeorgian_xanGeorgian_jhanGeorgian_haeGeorgian_heGeorgian_hieGeorgian_weGeorgian_harGeorgian_hoeGeorgian_fiBabovedotbabovedotDabovedotdabovedotFabovedotfabovedotLbelowdotlbelowdotMabovedotmabovedotPabovedotpabovedotSabovedotsabovedotTabovedottabovedotWgravewgraveWacutewacuteWdiaeresiswdiaeresisXabovedotxabovedotAbelowdotabelowdotAhookahookAcircumflexacuteacircumflexacuteAcircumflexgraveacircumflexgraveAcircumflexhookacircumflexhookAcircumflextildeacircumflextildeAcircumflexbelowdotacircumflexbelowdotAbreveacuteabreveacuteAbrevegraveabrevegraveAbrevehookabrevehookAbrevetildeabrevetildeAbrevebelowdotabrevebelowdotEbelowdotebelowdotEhookehookEtildeetildeEcircumflexacuteecircumflexacuteEcircumflexgraveecircumflexgraveEcircumflexhookecircumflexhookEcircumflextildeecircumflextildeEcircumflexbelowdotecircumflexbelowdotIhookihookIbelowdotibelowdotObelowdotobelowdotOhookohookOcircumflexacuteocircumflexacuteOcircumflexgraveocircumflexgraveOcircumflexhookocircumflexhookOcircumflextildeocircumflextildeOcircumflexbelowdotocircumflexbelowdotOhornacuteohornacuteOhorngraveohorngraveOhornhookohornhookOhorntildeohorntildeOhornbelowdotohornbelowdotUbelowdotubelowdotUhookuhookUhornacuteuhornacuteUhorngraveuhorngraveUhornhookuhornhookUhorntildeuhorntildeUhornbelowdotuhornbelowdotYgraveygraveYbelowdotybelowdotYhookyhookYtildeytildezerosuperiorfoursuperiorfivesuperiorsixsuperiorsevensuperioreightsuperiorninesuperiorzerosubscriptonesubscripttwosubscriptthreesubscriptfoursubscriptfivesubscriptsixsubscriptsevensubscripteightsubscriptninesubscriptEcuSignColonSignCruzeiroSignFFrancSignLiraSignMillSignNairaSignPesetaSignRupeeSignWonSignNewSheqelSignDongSignpartdifferentialemptysetelementofnotelementofcontainsassquarerootcuberootfourthrootdintegraltintegralbecausenotapproxeqapproxeqnotidenticalstricteqbraille_blankbraille_dots_1braille_dots_2braille_dots_12braille_dots_3braille_dots_13braille_dots_23braille_dots_123braille_dots_4braille_dots_14braille_dots_24braille_dots_124braille_dots_34braille_dots_134braille_dots_234braille_dots_1234braille_dots_5braille_dots_15braille_dots_25braille_dots_125braille_dots_35braille_dots_135braille_dots_235braille_dots_1235braille_dots_45braille_dots_145braille_dots_245braille_dots_1245braille_dots_345braille_dots_1345braille_dots_2345braille_dots_12345braille_dots_6braille_dots_16braille_dots_26braille_dots_126braille_dots_36braille_dots_136braille_dots_236braille_dots_1236braille_dots_46braille_dots_146braille_dots_246braille_dots_1246braille_dots_346braille_dots_1346braille_dots_2346braille_dots_12346braille_dots_56braille_dots_156braille_dots_256braille_dots_1256braille_dots_356braille_dots_1356braille_dots_2356braille_dots_12356braille_dots_456braille_dots_1456braille_dots_2456braille_dots_12456braille_dots_3456braille_dots_13456braille_dots_23456braille_dots_123456braille_dots_7braille_dots_17braille_dots_27braille_dots_127braille_dots_37braille_dots_137braille_dots_237braille_dots_1237braille_dots_47braille_dots_147braille_dots_247braille_dots_1247braille_dots_347braille_dots_1347braille_dots_2347braille_dots_12347braille_dots_57braille_dots_157braille_dots_257braille_dots_1257braille_dots_357braille_dots_1357braille_dots_2357braille_dots_12357braille_dots_457braille_dots_1457braille_dots_2457braille_dots_12457braille_dots_3457braille_dots_13457braille_dots_23457braille_dots_123457braille_dots_67braille_dots_167braille_dots_267braille_dots_1267braille_dots_367braille_dots_1367braille_dots_2367braille_dots_12367braille_dots_467braille_dots_1467braille_dots_2467braille_dots_12467braille_dots_3467braille_dots_13467braille_dots_23467braille_dots_123467braille_dots_567braille_dots_1567braille_dots_2567braille_dots_12567braille_dots_3567braille_dots_13567braille_dots_23567braille_dots_123567braille_dots_4567braille_dots_14567braille_dots_24567braille_dots_124567braille_dots_34567braille_dots_134567braille_dots_234567braille_dots_1234567braille_dots_8braille_dots_18braille_dots_28braille_dots_128braille_dots_38braille_dots_138braille_dots_238braille_dots_1238braille_dots_48braille_dots_148braille_dots_248braille_dots_1248braille_dots_348braille_dots_1348braille_dots_2348braille_dots_12348braille_dots_58braille_dots_158braille_dots_258braille_dots_1258braille_dots_358braille_dots_1358braille_dots_2358braille_dots_12358braille_dots_458braille_dots_1458braille_dots_2458braille_dots_12458braille_dots_3458braille_dots_13458braille_dots_23458braille_dots_123458braille_dots_68braille_dots_168braille_dots_268braille_dots_1268braille_dots_368braille_dots_1368braille_dots_2368braille_dots_12368braille_dots_468braille_dots_1468braille_dots_2468braille_dots_12468braille_dots_3468braille_dots_13468braille_dots_23468braille_dots_123468braille_dots_568braille_dots_1568braille_dots_2568braille_dots_12568braille_dots_3568braille_dots_13568braille_dots_23568braille_dots_123568braille_dots_4568braille_dots_14568braille_dots_24568braille_dots_124568braille_dots_34568braille_dots_134568braille_dots_234568braille_dots_1234568braille_dots_78braille_dots_178braille_dots_278braille_dots_1278braille_dots_378braille_dots_1378braille_dots_2378braille_dots_12378braille_dots_478braille_dots_1478braille_dots_2478braille_dots_12478braille_dots_3478braille_dots_13478braille_dots_23478braille_dots_123478braille_dots_578braille_dots_1578braille_dots_2578braille_dots_12578braille_dots_3578braille_dots_13578braille_dots_23578braille_dots_123578braille_dots_4578braille_dots_14578braille_dots_24578braille_dots_124578braille_dots_34578braille_dots_134578braille_dots_234578braille_dots_1234578braille_dots_678braille_dots_1678braille_dots_2678braille_dots_12678braille_dots_3678braille_dots_13678braille_dots_23678braille_dots_123678braille_dots_4678braille_dots_14678braille_dots_24678braille_dots_124678braille_dots_34678braille_dots_134678braille_dots_234678braille_dots_1234678braille_dots_5678braille_dots_15678braille_dots_25678braille_dots_125678braille_dots_35678braille_dots_135678braille_dots_235678braille_dots_1235678braille_dots_45678braille_dots_145678braille_dots_245678braille_dots_1245678braille_dots_345678braille_dots_1345678braille_dots_2345678braille_dots_12345678hpmute_acutemute_acutehpmute_gravemute_gravehpmute_asciicircummute_asciicircumhpmute_diaeresismute_diaeresishpmute_asciitildemute_asciitildehpliralirahpguilderguilderhpYdiaeresishpIOIOhplongminuslongminushpblockblockDdiaeresisDacute_accentDcedilla_accentDcircumflex_accentDgrave_accentDtildeDring_accentDRemovehpModelock1hpModelock2hpResetResethpSystemSystemhpUserUserhpClearLineClearLinehpInsertLineInsertLinehpDeleteLineDeleteLinehpInsertCharInsertCharhpDeleteCharDeleteCharhpBackTabBackTabhpKP_BackTabKP_BackTabExt16bit_LExt16bit_RosfCopyosfCutosfPasteosfBackTabosfBackSpaceosfClearosfEscapeosfAddModeosfPrimaryPasteosfQuickPasteosfPageLeftosfPageUposfPageDownosfPageRightosfActivateosfMenuBarosfLeftosfUposfRightosfDownosfEndLineosfBeginLineosfEndDataosfBeginDataosfPrevMenuosfNextMenuosfPrevFieldosfNextFieldosfSelectosfInsertosfUndoosfMenuosfCancelosfHelposfSelectAllosfDeselectAllosfReselectosfExtendosfRestoreosfDeleteSunFA_GraveSunFA_CircumSunFA_TildeSunFA_AcuteSunFA_DiaeresisSunFA_CedillaSunF36SunF37SunSys_ReqSunPropsSunFrontSunCopySunOpenSunPasteSunCutSunPowerSwitchSunAudioLowerVolumeSunAudioMuteSunAudioRaiseVolumeSunVideoDegaussSunVideoLowerBrightnessSunVideoRaiseBrightnessSunPowerSwitchShiftXF86BrightnessAutoXF86DisplayOffXF86InfoXF86AspectRatioXF86DVDXF86AudioXF86ChannelUpXF86ChannelDownXF86BreakXF86VideoPhoneXF86ZoomResetXF86EditorXF86GraphicsEditorXF86PresentationXF86DatabaseXF86VoicemailXF86AddressbookXF86DisplayToggleXF86SpellCheckXF86ContextMenuXF86MediaRepeatXF8610ChannelsUpXF8610ChannelsDownXF86ImagesXF86NotificationCenterXF86PickupPhoneXF86HangupPhoneXF86FnXF86Fn_EscXF86FnRightShiftXF86Numeric0XF86Numeric1XF86Numeric2XF86Numeric3XF86Numeric4XF86Numeric5XF86Numeric6XF86Numeric7XF86Numeric8XF86Numeric9XF86NumericStarXF86NumericPoundXF86NumericAXF86NumericBXF86NumericCXF86NumericDXF86CameraFocusXF86WPSButtonXF86CameraZoomInXF86CameraZoomOutXF86CameraUpXF86CameraDownXF86CameraLeftXF86CameraRightXF86AttendantOnXF86AttendantOffXF86AttendantToggleXF86LightsToggleXF86ALSToggleXF86RefreshRateToggleXF86ButtonconfigXF86TaskmanagerXF86JournalXF86ControlPanelXF86AppSelectXF86ScreensaverXF86VoiceCommandXF86AssistantXF86EmojiPickerXF86DictateXF86CameraAccessEnableXF86CameraAccessDisableXF86CameraAccessToggleXF86AccessibilityXF86DoNotDisturbXF86BrightnessMinXF86BrightnessMaxXF86KbdInputAssistPrevXF86KbdInputAssistNextXF86KbdInputAssistPrevgroupXF86KbdInputAssistNextgroupXF86KbdInputAssistAcceptXF86KbdInputAssistCancelXF86RightUpXF86RightDownXF86LeftUpXF86LeftDownXF86RootMenuXF86MediaTopMenuXF86Numeric11XF86Numeric12XF86AudioDescXF863DModeXF86NextFavoriteXF86StopRecordXF86PauseRecordXF86VODXF86UnmuteXF86FastReverseXF86SlowReverseXF86DataXF86OnScreenKeyboardXF86PrivacyScreenToggleXF86SelectiveScreenshotXF86NextElementXF86PreviousElementXF86AutopilotEngageToggleXF86MarkWaypointXF86SosXF86NavChartXF86FishingChartXF86SingleRangeRadarXF86DualRangeRadarXF86RadarOverlayXF86TraditionalSonarXF86ClearvuSonarXF86SidevuSonarXF86NavInfoXF86Macro1XF86Macro2XF86Macro3XF86Macro4XF86Macro5XF86Macro6XF86Macro7XF86Macro8XF86Macro9XF86Macro10XF86Macro11XF86Macro12XF86Macro13XF86Macro14XF86Macro15XF86Macro16XF86Macro17XF86Macro18XF86Macro19XF86Macro20XF86Macro21XF86Macro22XF86Macro23XF86Macro24XF86Macro25XF86Macro26XF86Macro27XF86Macro28XF86Macro29XF86Macro30XF86MacroRecordStartXF86MacroRecordStopXF86MacroPresetCycleXF86MacroPreset1XF86MacroPreset2XF86MacroPreset3XF86KbdLcdMenu1XF86KbdLcdMenu2XF86KbdLcdMenu3XF86KbdLcdMenu4XF86KbdLcdMenu5XF86Switch_VT_1XF86Switch_VT_2XF86Switch_VT_3XF86Switch_VT_4XF86Switch_VT_5XF86Switch_VT_6XF86Switch_VT_7XF86Switch_VT_8XF86Switch_VT_9XF86Switch_VT_10XF86Switch_VT_11XF86Switch_VT_12XF86UngrabXF86ClearGrabXF86Next_VModeXF86Prev_VModeXF86LogWindowTreeXF86LogGrabInfoXF86ModeLockXF86MonBrightnessUpXF86MonBrightnessDownXF86KbdLightOnOffXF86KbdBrightnessUpXF86KbdBrightnessDownXF86MonBrightnessCycleXF86StandbyXF86AudioLowerVolumeXF86AudioMuteXF86AudioRaiseVolumeXF86AudioPlayXF86AudioStopXF86AudioPrevXF86AudioNextXF86HomePageXF86MailXF86StartXF86SearchXF86AudioRecordXF86CalculatorXF86MemoXF86ToDoListXF86CalendarXF86PowerDownXF86ContrastAdjustXF86RockerUpXF86RockerDownXF86RockerEnterXF86BackXF86ForwardXF86StopXF86RefreshXF86PowerOffXF86WakeUpXF86EjectXF86ScreenSaverXF86WWWXF86SleepXF86FavoritesXF86AudioPauseXF86AudioMediaXF86MyComputerXF86VendorHomeXF86LightBulbXF86ShopXF86HistoryXF86OpenURLXF86AddFavoriteXF86HotLinksXF86BrightnessAdjustXF86FinanceXF86CommunityXF86AudioRewindXF86BackForwardXF86Launch0XF86Launch1XF86Launch2XF86Launch3XF86Launch4XF86Launch5XF86Launch6XF86Launch7XF86Launch8XF86Launch9XF86LaunchAXF86LaunchBXF86LaunchCXF86LaunchDXF86LaunchEXF86LaunchFXF86ApplicationLeftXF86ApplicationRightXF86BookXF86CDXF86CalculaterXF86ClearXF86CloseXF86CopyXF86CutXF86DisplayXF86DOSXF86DocumentsXF86ExcelXF86ExplorerXF86GameXF86GoXF86iTouchXF86LogOffXF86MarketXF86MeetingXF86MenuKBXF86MenuPBXF86MySitesXF86NewXF86NewsXF86OfficeHomeXF86OpenXF86OptionXF86PasteXF86PhoneXF86QXF86ReplyXF86ReloadXF86RotateWindowsXF86RotationPBXF86RotationKBXF86SaveXF86ScrollUpXF86ScrollDownXF86ScrollClickXF86SendXF86SpellXF86SplitScreenXF86SupportXF86TaskPaneXF86TerminalXF86ToolsXF86TravelXF86UserPBXF86User1KBXF86User2KBXF86VideoXF86WheelButtonXF86WordXF86XferXF86ZoomInXF86ZoomOutXF86AwayXF86MessengerXF86WebCamXF86MailForwardXF86PicturesXF86MusicXF86BatteryXF86BluetoothXF86WLANXF86UWBXF86AudioForwardXF86AudioRepeatXF86AudioRandomPlayXF86SubtitleXF86AudioCycleTrackXF86CycleAngleXF86FrameBackXF86FrameForwardXF86TimeXF86SelectXF86ViewXF86TopMenuXF86RedXF86GreenXF86YellowXF86BlueXF86SuspendXF86HibernateXF86TouchpadToggleXF86TouchpadOnXF86TouchpadOffXF86AudioMicMuteXF86KeyboardXF86WWANXF86RFKillXF86AudioPresetXF86RotationLockToggleXF86FullScreen"; +pub(super) static NAMES: &str = "NoSymbolspaceexclamquotedblnumbersigndollarpercentampersandapostrophequoterightparenleftparenrightasteriskpluscommaminusperiodslash0123456789colonsemicolonlessequalgreaterquestionatABCDEFGHIJKLMNOPQRSTUVWXYZbracketleftbackslashbracketrightasciicircumunderscoregravequoteleftabcdefghijklmnopqrstuvwxyzbraceleftbarbracerightasciitildenobreakspaceexclamdowncentsterlingcurrencyyenbrokenbarsectiondiaeresiscopyrightordfeminineguillemotleftguillemetleftnotsignhyphenregisteredmacrondegreeplusminustwosuperiorthreesuperioracutemuparagraphperiodcenteredcedillaonesuperiormasculineordmasculineguillemotrightguillemetrightonequarteronehalfthreequartersquestiondownAgraveAacuteAcircumflexAtildeAdiaeresisAringAECcedillaEgraveEacuteEcircumflexEdiaeresisIgraveIacuteIcircumflexIdiaeresisETHEthNtildeOgraveOacuteOcircumflexOtildeOdiaeresismultiplyOslashOobliqueUgraveUacuteUcircumflexUdiaeresisYacuteTHORNThornssharpagraveaacuteacircumflexatildeadiaeresisaringaeccedillaegraveeacuteecircumflexediaeresisigraveiacuteicircumflexidiaeresisethntildeograveoacuteocircumflexotildeodiaeresisdivisionoslashoobliqueugraveuacuteucircumflexudiaeresisyacutethornydiaeresisAogonekbreveLstrokeLcaronSacuteScaronScedillaTcaronZacuteZcaronZabovedotaogonekogoneklstrokelcaronsacutecaronscaronscedillatcaronzacutedoubleacutezcaronzabovedotRacuteAbreveLacuteCacuteCcaronEogonekEcaronDcaronDstrokeNacuteNcaronOdoubleacuteRcaronUringUdoubleacuteTcedillaracuteabrevelacutecacuteccaroneogonekecarondcarondstrokenacutencaronodoubleacutercaronuringudoubleacutetcedillaabovedotHstrokeHcircumflexIabovedotGbreveJcircumflexhstrokehcircumflexidotlessgbrevejcircumflexCabovedotCcircumflexGabovedotGcircumflexUbreveScircumflexcabovedotccircumflexgabovedotgcircumflexubrevescircumflexkrakappaRcedillaItildeLcedillaEmacronGcedillaTslashrcedillaitildelcedillaemacrongcedillatslashENGengAmacronIogonekEabovedotImacronNcedillaOmacronKcedillaUogonekUtildeUmacronamacroniogonekeabovedotimacronncedillaomacronkcedillauogonekutildeumacronoverlinekana_fullstopkana_openingbracketkana_closingbracketkana_commakana_conjunctivekana_middledotkana_WOkana_akana_ikana_ukana_ekana_okana_yakana_yukana_yokana_tsukana_tuprolongedsoundkana_Akana_Ikana_Ukana_Ekana_Okana_KAkana_KIkana_KUkana_KEkana_KOkana_SAkana_SHIkana_SUkana_SEkana_SOkana_TAkana_CHIkana_TIkana_TSUkana_TUkana_TEkana_TOkana_NAkana_NIkana_NUkana_NEkana_NOkana_HAkana_HIkana_FUkana_HUkana_HEkana_HOkana_MAkana_MIkana_MUkana_MEkana_MOkana_YAkana_YUkana_YOkana_RAkana_RIkana_RUkana_REkana_ROkana_WAkana_NvoicedsoundsemivoicedsoundArabic_commaArabic_semicolonArabic_question_markArabic_hamzaArabic_maddaonalefArabic_hamzaonalefArabic_hamzaonwawArabic_hamzaunderalefArabic_hamzaonyehArabic_alefArabic_behArabic_tehmarbutaArabic_tehArabic_thehArabic_jeemArabic_hahArabic_khahArabic_dalArabic_thalArabic_raArabic_zainArabic_seenArabic_sheenArabic_sadArabic_dadArabic_tahArabic_zahArabic_ainArabic_ghainArabic_tatweelArabic_fehArabic_qafArabic_kafArabic_lamArabic_meemArabic_noonArabic_haArabic_hehArabic_wawArabic_alefmaksuraArabic_yehArabic_fathatanArabic_dammatanArabic_kasratanArabic_fathaArabic_dammaArabic_kasraArabic_shaddaArabic_sukunSerbian_djeMacedonia_gjeCyrillic_ioUkrainian_ieUkranian_jeMacedonia_dseUkrainian_iUkranian_iUkrainian_yiUkranian_yiCyrillic_jeSerbian_jeCyrillic_ljeSerbian_ljeCyrillic_njeSerbian_njeSerbian_tsheMacedonia_kjeUkrainian_ghe_with_upturnByelorussian_shortuCyrillic_dzheSerbian_dzenumerosignSerbian_DJEMacedonia_GJECyrillic_IOUkrainian_IEUkranian_JEMacedonia_DSEUkrainian_IUkranian_IUkrainian_YIUkranian_YICyrillic_JESerbian_JECyrillic_LJESerbian_LJECyrillic_NJESerbian_NJESerbian_TSHEMacedonia_KJEUkrainian_GHE_WITH_UPTURNByelorussian_SHORTUCyrillic_DZHESerbian_DZECyrillic_yuCyrillic_aCyrillic_beCyrillic_tseCyrillic_deCyrillic_ieCyrillic_efCyrillic_gheCyrillic_haCyrillic_iCyrillic_shortiCyrillic_kaCyrillic_elCyrillic_emCyrillic_enCyrillic_oCyrillic_peCyrillic_yaCyrillic_erCyrillic_esCyrillic_teCyrillic_uCyrillic_zheCyrillic_veCyrillic_softsignCyrillic_yeruCyrillic_zeCyrillic_shaCyrillic_eCyrillic_shchaCyrillic_cheCyrillic_hardsignCyrillic_YUCyrillic_ACyrillic_BECyrillic_TSECyrillic_DECyrillic_IECyrillic_EFCyrillic_GHECyrillic_HACyrillic_ICyrillic_SHORTICyrillic_KACyrillic_ELCyrillic_EMCyrillic_ENCyrillic_OCyrillic_PECyrillic_YACyrillic_ERCyrillic_ESCyrillic_TECyrillic_UCyrillic_ZHECyrillic_VECyrillic_SOFTSIGNCyrillic_YERUCyrillic_ZECyrillic_SHACyrillic_ECyrillic_SHCHACyrillic_CHECyrillic_HARDSIGNGreek_ALPHAaccentGreek_EPSILONaccentGreek_ETAaccentGreek_IOTAaccentGreek_IOTAdieresisGreek_IOTAdiaeresisGreek_OMICRONaccentGreek_UPSILONaccentGreek_UPSILONdieresisGreek_OMEGAaccentGreek_accentdieresisGreek_horizbarGreek_alphaaccentGreek_epsilonaccentGreek_etaaccentGreek_iotaaccentGreek_iotadieresisGreek_iotaaccentdieresisGreek_omicronaccentGreek_upsilonaccentGreek_upsilondieresisGreek_upsilonaccentdieresisGreek_omegaaccentGreek_ALPHAGreek_BETAGreek_GAMMAGreek_DELTAGreek_EPSILONGreek_ZETAGreek_ETAGreek_THETAGreek_IOTAGreek_KAPPAGreek_LAMDAGreek_LAMBDAGreek_MUGreek_NUGreek_XIGreek_OMICRONGreek_PIGreek_RHOGreek_SIGMAGreek_TAUGreek_UPSILONGreek_PHIGreek_CHIGreek_PSIGreek_OMEGAGreek_alphaGreek_betaGreek_gammaGreek_deltaGreek_epsilonGreek_zetaGreek_etaGreek_thetaGreek_iotaGreek_kappaGreek_lamdaGreek_lambdaGreek_muGreek_nuGreek_xiGreek_omicronGreek_piGreek_rhoGreek_sigmaGreek_finalsmallsigmaGreek_tauGreek_upsilonGreek_phiGreek_chiGreek_psiGreek_omegaleftradicaltopleftradicalhorizconnectortopintegralbotintegralvertconnectortopleftsqbracketbotleftsqbrackettoprightsqbracketbotrightsqbrackettopleftparensbotleftparenstoprightparensbotrightparensleftmiddlecurlybracerightmiddlecurlybracetopleftsummationbotleftsummationtopvertsummationconnectorbotvertsummationconnectortoprightsummationbotrightsummationrightmiddlesummationlessthanequalnotequalgreaterthanequalintegralthereforevariationinfinitynablaapproximatesimilarequalifonlyifimpliesidenticalradicalincludedinincludesintersectionunionlogicalandlogicalorpartialderivativefunctionleftarrowuparrowrightarrowdownarrowblanksoliddiamondcheckerboardhtffcrlfnlvtlowrightcorneruprightcornerupleftcornerlowleftcornercrossinglineshorizlinescan1horizlinescan3horizlinescan5horizlinescan7horizlinescan9lefttrighttbotttoptvertbaremspaceenspaceem3spaceem4spacedigitspacepunctspacethinspacehairspaceemdashendashsignifblankellipsisdoubbaselinedotonethirdtwothirdsonefifthtwofifthsthreefifthsfourfifthsonesixthfivesixthscareoffigdashleftanglebracketdecimalpointrightanglebracketmarkeroneeighththreeeighthsfiveeighthsseveneighthstrademarksignaturemarktrademarkincircleleftopentrianglerightopentriangleemopencircleemopenrectangleleftsinglequotemarkrightsinglequotemarkleftdoublequotemarkrightdoublequotemarkprescriptionpermilleminutessecondslatincrosshexagramfilledrectbulletfilledlefttribulletfilledrighttribulletemfilledcircleemfilledrectenopencircbulletenopensquarebulletopenrectbulletopentribulletupopentribulletdownopenstarenfilledcircbulletenfilledsqbulletfilledtribulletupfilledtribulletdownleftpointerrightpointerclubdiamondheartmaltesecrossdaggerdoubledaggercheckmarkballotcrossmusicalsharpmusicalflatmalesymbolfemalesymboltelephonetelephonerecorderphonographcopyrightcaretsinglelowquotemarkdoublelowquotemarkcursorleftcaretrightcaretdowncaretupcaretoverbardowntackupshoedownstileunderbarjotquaduptackcircleupstiledownshoerightshoeleftshoelefttackrighttackhebrew_doublelowlinehebrew_alephhebrew_bethebrew_bethhebrew_gimelhebrew_gimmelhebrew_dalethebrew_dalethhebrew_hehebrew_wawhebrew_zainhebrew_zayinhebrew_chethebrew_hethebrew_tethebrew_tethhebrew_yodhebrew_finalkaphhebrew_kaphhebrew_lamedhebrew_finalmemhebrew_memhebrew_finalnunhebrew_nunhebrew_samechhebrew_samekhhebrew_ayinhebrew_finalpehebrew_pehebrew_finalzadehebrew_finalzadihebrew_zadehebrew_zadihebrew_qophhebrew_kufhebrew_reshhebrew_shinhebrew_tawhebrew_tafThai_kokaiThai_khokhaiThai_khokhuatThai_khokhwaiThai_khokhonThai_khorakhangThai_ngonguThai_chochanThai_chochingThai_chochangThai_sosoThai_chochoeThai_yoyingThai_dochadaThai_topatakThai_thothanThai_thonangmonthoThai_thophuthaoThai_nonenThai_dodekThai_totaoThai_thothungThai_thothahanThai_thothongThai_nonuThai_bobaimaiThai_poplaThai_phophungThai_fofaThai_phophanThai_fofanThai_phosamphaoThai_momaThai_yoyakThai_roruaThai_ruThai_lolingThai_luThai_wowaenThai_sosalaThai_sorusiThai_sosuaThai_hohipThai_lochulaThai_oangThai_honokhukThai_paiyannoiThai_saraaThai_maihanakatThai_saraaaThai_saraamThai_saraiThai_saraiiThai_saraueThai_saraueeThai_sarauThai_sarauuThai_phinthuThai_maihanakat_maithoThai_bahtThai_saraeThai_saraaeThai_saraoThai_saraaimaimuanThai_saraaimaimalaiThai_lakkhangyaoThai_maiyamokThai_maitaikhuThai_maiekThai_maithoThai_maitriThai_maichattawaThai_thanthakhatThai_nikhahitThai_leksunThai_leknungThai_leksongThai_leksamThai_leksiThai_lekhaThai_lekhokThai_lekchetThai_lekpaetThai_lekkaoHangul_KiyeogHangul_SsangKiyeogHangul_KiyeogSiosHangul_NieunHangul_NieunJieujHangul_NieunHieuhHangul_DikeudHangul_SsangDikeudHangul_RieulHangul_RieulKiyeogHangul_RieulMieumHangul_RieulPieubHangul_RieulSiosHangul_RieulTieutHangul_RieulPhieufHangul_RieulHieuhHangul_MieumHangul_PieubHangul_SsangPieubHangul_PieubSiosHangul_SiosHangul_SsangSiosHangul_IeungHangul_JieujHangul_SsangJieujHangul_CieucHangul_KhieuqHangul_TieutHangul_PhieufHangul_HieuhHangul_AHangul_AEHangul_YAHangul_YAEHangul_EOHangul_EHangul_YEOHangul_YEHangul_OHangul_WAHangul_WAEHangul_OEHangul_YOHangul_UHangul_WEOHangul_WEHangul_WIHangul_YUHangul_EUHangul_YIHangul_IHangul_J_KiyeogHangul_J_SsangKiyeogHangul_J_KiyeogSiosHangul_J_NieunHangul_J_NieunJieujHangul_J_NieunHieuhHangul_J_DikeudHangul_J_RieulHangul_J_RieulKiyeogHangul_J_RieulMieumHangul_J_RieulPieubHangul_J_RieulSiosHangul_J_RieulTieutHangul_J_RieulPhieufHangul_J_RieulHieuhHangul_J_MieumHangul_J_PieubHangul_J_PieubSiosHangul_J_SiosHangul_J_SsangSiosHangul_J_IeungHangul_J_JieujHangul_J_CieucHangul_J_KhieuqHangul_J_TieutHangul_J_PhieufHangul_J_HieuhHangul_RieulYeorinHieuhHangul_SunkyeongeumMieumHangul_SunkyeongeumPieubHangul_PanSiosHangul_KkogjiDalrinIeungHangul_SunkyeongeumPhieufHangul_YeorinHieuhHangul_AraeAHangul_AraeAEHangul_J_PanSiosHangul_J_KkogjiDalrinIeungHangul_J_YeorinHieuhKorean_WonOEoeYdiaeresisEuroSign3270_Duplicate3270_FieldMark3270_Right23270_Left23270_BackTab3270_EraseEOF3270_EraseInput3270_Reset3270_Quit3270_PA13270_PA23270_PA33270_Test3270_Attn3270_CursorBlink3270_AltCursor3270_KeyClick3270_Jump3270_Ident3270_Rule3270_Copy3270_Play3270_Setup3270_Record3270_ChangeScreen3270_DeleteWord3270_ExSelect3270_CursorSelect3270_PrintScreen3270_EnterISO_LockISO_Level2_LatchISO_Level3_ShiftISO_Level3_LatchISO_Level3_LockISO_Group_LatchISO_Group_LockISO_Next_GroupISO_Next_Group_LockISO_Prev_GroupISO_Prev_Group_LockISO_First_GroupISO_First_Group_LockISO_Last_GroupISO_Last_Group_LockISO_Level5_ShiftISO_Level5_LatchISO_Level5_LockISO_Left_TabISO_Move_Line_UpISO_Move_Line_DownISO_Partial_Line_UpISO_Partial_Line_DownISO_Partial_Space_LeftISO_Partial_Space_RightISO_Set_Margin_LeftISO_Set_Margin_RightISO_Release_Margin_LeftISO_Release_Margin_RightISO_Release_Both_MarginsISO_Fast_Cursor_LeftISO_Fast_Cursor_RightISO_Fast_Cursor_UpISO_Fast_Cursor_DownISO_Continuous_UnderlineISO_Discontinuous_UnderlineISO_EmphasizeISO_Center_ObjectISO_Enterdead_gravedead_acutedead_circumflexdead_tildedead_perispomenidead_macrondead_brevedead_abovedotdead_diaeresisdead_aboveringdead_doubleacutedead_carondead_cedilladead_ogonekdead_iotadead_voiced_sounddead_semivoiced_sounddead_belowdotdead_hookdead_horndead_strokedead_abovecommadead_psilidead_abovereversedcommadead_dasiadead_doublegravedead_belowringdead_belowmacrondead_belowcircumflexdead_belowtildedead_belowbrevedead_belowdiaeresisdead_invertedbrevedead_belowcommadead_currencyAccessX_EnableAccessX_Feedback_EnableRepeatKeys_EnableSlowKeys_EnableBounceKeys_EnableStickyKeys_EnableMouseKeys_EnableMouseKeys_Accel_EnableOverlay1_EnableOverlay2_EnableAudibleBell_Enabledead_adead_Adead_edead_Edead_idead_Idead_odead_Odead_udead_Udead_small_schwadead_schwadead_capital_schwadead_SCHWAdead_greekdead_hamzadead_lowlinedead_aboveverticallinedead_belowverticallinedead_longsolidusoverlaychChCHc_hC_hC_HFirst_Virtual_ScreenPrev_Virtual_ScreenNext_Virtual_ScreenLast_Virtual_ScreenTerminate_ServerPointer_LeftPointer_RightPointer_UpPointer_DownPointer_UpLeftPointer_UpRightPointer_DownLeftPointer_DownRightPointer_Button_DfltPointer_Button1Pointer_Button2Pointer_Button3Pointer_Button4Pointer_Button5Pointer_DblClick_DfltPointer_DblClick1Pointer_DblClick2Pointer_DblClick3Pointer_DblClick4Pointer_DblClick5Pointer_Drag_DfltPointer_Drag1Pointer_Drag2Pointer_Drag3Pointer_Drag4Pointer_EnableKeysPointer_AcceleratePointer_DfltBtnNextPointer_DfltBtnPrevPointer_Drag5BackSpaceTabLinefeedClearReturnPauseScroll_LockSys_ReqEscapeMulti_keySunComposeKanjiMuhenkanHenkan_ModeHenkanRomajiHiraganaKatakanaHiragana_KatakanaZenkakuHankakuZenkaku_HankakuTourokuMassyoKana_LockKana_ShiftEisu_ShiftEisu_toggleHangulHangul_StartHangul_EndHangul_HanjaHangul_JamoHangul_RomajaCodeinputKanji_BangouHangul_CodeinputHangul_JeonjaHangul_BanjaHangul_PreHanjaHangul_PostHanjaSingleCandidateHangul_SingleCandidateMultipleCandidateZen_KohoHangul_MultipleCandidatePreviousCandidateMae_KohoHangul_PreviousCandidateHangul_SpecialHomeLeftUpRightDownPriorPage_UpSunPageUpNextPage_DownSunPageDownEndBeginSelectPrintSunPrint_ScreenExecuteInsertUndoSunUndoRedoSunAgainMenuFindSunFindCancelSunStopHelpBreakMode_switchscript_switchISO_Group_Shiftkana_switchArabic_switchGreek_switchHebrew_switchHangul_switchSunAltGraphNum_LockKP_SpaceKP_TabKP_EnterKP_F1KP_F2KP_F3KP_F4KP_HomeKP_LeftKP_UpKP_RightKP_DownKP_PriorKP_Page_UpKP_NextKP_Page_DownKP_EndKP_BeginKP_InsertKP_DeleteKP_MultiplyKP_AddKP_SeparatorKP_SubtractKP_DecimalKP_DivideKP_0KP_1KP_2KP_3KP_4KP_5KP_6KP_7KP_8KP_9KP_EqualF1F2F3F4F5F6F7F8F9F10F11L1F12L2F13L3F14L4F15L5F16L6F17L7F18L8F19L9F20L10F21R1F22R2F23R3F24R4F25R5F26R6F27R7F28R8F29R9F30R10F31R11F32R12F33R13F34R14F35R15Shift_LShift_RControl_LControl_RCaps_LockShift_LockMeta_LMeta_RAlt_LAlt_RSuper_LSuper_RHyper_LHyper_Rbraille_dot_1braille_dot_2braille_dot_3braille_dot_4braille_dot_5braille_dot_6braille_dot_7braille_dot_8braille_dot_9braille_dot_10DeleteVoidSymbolIbreveibreveWcircumflexwcircumflexYcircumflexycircumflexSCHWAObarredOhornohornUhornuhornZstrokezstrokeEZHOcaronocaronGcarongcaronschwaobarredezhcombining_gravecombining_acutecombining_tildecombining_hookcombining_belowdotCyrillic_GHE_barCyrillic_ghe_barCyrillic_ZHE_descenderCyrillic_zhe_descenderCyrillic_KA_descenderCyrillic_ka_descenderCyrillic_KA_vertstrokeCyrillic_ka_vertstrokeCyrillic_EN_descenderCyrillic_en_descenderCyrillic_U_straightCyrillic_u_straightCyrillic_U_straight_barCyrillic_u_straight_barCyrillic_HA_descenderCyrillic_ha_descenderCyrillic_CHE_descenderCyrillic_che_descenderCyrillic_CHE_vertstrokeCyrillic_che_vertstrokeCyrillic_SHHACyrillic_shhaCyrillic_SCHWACyrillic_schwaCyrillic_I_macronCyrillic_i_macronCyrillic_O_barCyrillic_o_barCyrillic_U_macronCyrillic_u_macronArmenian_AYBArmenian_BENArmenian_GIMArmenian_DAArmenian_YECHArmenian_ZAArmenian_EArmenian_ATArmenian_TOArmenian_ZHEArmenian_INIArmenian_LYUNArmenian_KHEArmenian_TSAArmenian_KENArmenian_HOArmenian_DZAArmenian_GHATArmenian_TCHEArmenian_MENArmenian_HIArmenian_NUArmenian_SHAArmenian_VOArmenian_CHAArmenian_PEArmenian_JEArmenian_RAArmenian_SEArmenian_VEVArmenian_TYUNArmenian_REArmenian_TSOArmenian_VYUNArmenian_PYURArmenian_KEArmenian_OArmenian_FEArmenian_apostropheArmenian_accentArmenian_sheshtArmenian_exclamArmenian_amanakArmenian_separation_markArmenian_butArmenian_questionArmenian_paruykArmenian_aybArmenian_benArmenian_gimArmenian_daArmenian_yechArmenian_zaArmenian_eArmenian_atArmenian_toArmenian_zheArmenian_iniArmenian_lyunArmenian_kheArmenian_tsaArmenian_kenArmenian_hoArmenian_dzaArmenian_ghatArmenian_tcheArmenian_menArmenian_hiArmenian_nuArmenian_shaArmenian_voArmenian_chaArmenian_peArmenian_jeArmenian_raArmenian_seArmenian_vevArmenian_tyunArmenian_reArmenian_tsoArmenian_vyunArmenian_pyurArmenian_keArmenian_oArmenian_feArmenian_ligature_ewArmenian_full_stopArmenian_verjaketArmenian_hyphenArmenian_yentamnaArabic_madda_aboveArabic_hamza_aboveArabic_hamza_belowArabic_0Arabic_1Arabic_2Arabic_3Arabic_4Arabic_5Arabic_6Arabic_7Arabic_8Arabic_9Arabic_percentArabic_superscript_alefArabic_ttehArabic_pehArabic_tchehArabic_ddalArabic_rrehArabic_jehArabic_vehArabic_kehehArabic_gafArabic_noon_ghunnaArabic_heh_doachashmeeArabic_heh_goalFarsi_yehArabic_farsi_yehArabic_yeh_bareeArabic_fullstopFarsi_0Farsi_1Farsi_2Farsi_3Farsi_4Farsi_5Farsi_6Farsi_7Farsi_8Farsi_9Sinh_ngSinh_h2Sinh_aSinh_aaSinh_aeSinh_aeeSinh_iSinh_iiSinh_uSinh_uuSinh_riSinh_riiSinh_luSinh_luuSinh_eSinh_eeSinh_aiSinh_oSinh_ooSinh_auSinh_kaSinh_khaSinh_gaSinh_ghaSinh_ng2Sinh_ngaSinh_caSinh_chaSinh_jaSinh_jhaSinh_nyaSinh_jnyaSinh_njaSinh_ttaSinh_tthaSinh_ddaSinh_ddhaSinh_nnaSinh_nddaSinh_thaSinh_thhaSinh_dhaSinh_dhhaSinh_naSinh_ndhaSinh_paSinh_phaSinh_baSinh_bhaSinh_maSinh_mbaSinh_yaSinh_raSinh_laSinh_vaSinh_shaSinh_sshaSinh_saSinh_haSinh_llaSinh_faSinh_alSinh_aa2Sinh_ae2Sinh_aee2Sinh_i2Sinh_ii2Sinh_u2Sinh_uu2Sinh_ru2Sinh_e2Sinh_ee2Sinh_ai2Sinh_o2Sinh_oo2Sinh_au2Sinh_lu2Sinh_ruu2Sinh_luu2Sinh_kunddaliyaGeorgian_anGeorgian_banGeorgian_ganGeorgian_donGeorgian_enGeorgian_vinGeorgian_zenGeorgian_tanGeorgian_inGeorgian_kanGeorgian_lasGeorgian_manGeorgian_narGeorgian_onGeorgian_parGeorgian_zharGeorgian_raeGeorgian_sanGeorgian_tarGeorgian_unGeorgian_pharGeorgian_kharGeorgian_ghanGeorgian_qarGeorgian_shinGeorgian_chinGeorgian_canGeorgian_jilGeorgian_cilGeorgian_charGeorgian_xanGeorgian_jhanGeorgian_haeGeorgian_heGeorgian_hieGeorgian_weGeorgian_harGeorgian_hoeGeorgian_fiBabovedotbabovedotDabovedotdabovedotFabovedotfabovedotLbelowdotlbelowdotMabovedotmabovedotPabovedotpabovedotSabovedotsabovedotTabovedottabovedotWgravewgraveWacutewacuteWdiaeresiswdiaeresisXabovedotxabovedotAbelowdotabelowdotAhookahookAcircumflexacuteacircumflexacuteAcircumflexgraveacircumflexgraveAcircumflexhookacircumflexhookAcircumflextildeacircumflextildeAcircumflexbelowdotacircumflexbelowdotAbreveacuteabreveacuteAbrevegraveabrevegraveAbrevehookabrevehookAbrevetildeabrevetildeAbrevebelowdotabrevebelowdotEbelowdotebelowdotEhookehookEtildeetildeEcircumflexacuteecircumflexacuteEcircumflexgraveecircumflexgraveEcircumflexhookecircumflexhookEcircumflextildeecircumflextildeEcircumflexbelowdotecircumflexbelowdotIhookihookIbelowdotibelowdotObelowdotobelowdotOhookohookOcircumflexacuteocircumflexacuteOcircumflexgraveocircumflexgraveOcircumflexhookocircumflexhookOcircumflextildeocircumflextildeOcircumflexbelowdotocircumflexbelowdotOhornacuteohornacuteOhorngraveohorngraveOhornhookohornhookOhorntildeohorntildeOhornbelowdotohornbelowdotUbelowdotubelowdotUhookuhookUhornacuteuhornacuteUhorngraveuhorngraveUhornhookuhornhookUhorntildeuhorntildeUhornbelowdotuhornbelowdotYgraveygraveYbelowdotybelowdotYhookyhookYtildeytildezerosuperiorfoursuperiorfivesuperiorsixsuperiorsevensuperioreightsuperiorninesuperiorzerosubscriptonesubscripttwosubscriptthreesubscriptfoursubscriptfivesubscriptsixsubscriptsevensubscripteightsubscriptninesubscriptEcuSignColonSignCruzeiroSignFFrancSignLiraSignMillSignNairaSignPesetaSignRupeeSignWonSignNewSheqelSignDongSignpartdifferentialemptysetelementofnotelementofcontainsassquarerootcuberootfourthrootdintegraltintegralbecausenotapproxeqapproxeqnotidenticalstricteqbraille_blankbraille_dots_1braille_dots_2braille_dots_12braille_dots_3braille_dots_13braille_dots_23braille_dots_123braille_dots_4braille_dots_14braille_dots_24braille_dots_124braille_dots_34braille_dots_134braille_dots_234braille_dots_1234braille_dots_5braille_dots_15braille_dots_25braille_dots_125braille_dots_35braille_dots_135braille_dots_235braille_dots_1235braille_dots_45braille_dots_145braille_dots_245braille_dots_1245braille_dots_345braille_dots_1345braille_dots_2345braille_dots_12345braille_dots_6braille_dots_16braille_dots_26braille_dots_126braille_dots_36braille_dots_136braille_dots_236braille_dots_1236braille_dots_46braille_dots_146braille_dots_246braille_dots_1246braille_dots_346braille_dots_1346braille_dots_2346braille_dots_12346braille_dots_56braille_dots_156braille_dots_256braille_dots_1256braille_dots_356braille_dots_1356braille_dots_2356braille_dots_12356braille_dots_456braille_dots_1456braille_dots_2456braille_dots_12456braille_dots_3456braille_dots_13456braille_dots_23456braille_dots_123456braille_dots_7braille_dots_17braille_dots_27braille_dots_127braille_dots_37braille_dots_137braille_dots_237braille_dots_1237braille_dots_47braille_dots_147braille_dots_247braille_dots_1247braille_dots_347braille_dots_1347braille_dots_2347braille_dots_12347braille_dots_57braille_dots_157braille_dots_257braille_dots_1257braille_dots_357braille_dots_1357braille_dots_2357braille_dots_12357braille_dots_457braille_dots_1457braille_dots_2457braille_dots_12457braille_dots_3457braille_dots_13457braille_dots_23457braille_dots_123457braille_dots_67braille_dots_167braille_dots_267braille_dots_1267braille_dots_367braille_dots_1367braille_dots_2367braille_dots_12367braille_dots_467braille_dots_1467braille_dots_2467braille_dots_12467braille_dots_3467braille_dots_13467braille_dots_23467braille_dots_123467braille_dots_567braille_dots_1567braille_dots_2567braille_dots_12567braille_dots_3567braille_dots_13567braille_dots_23567braille_dots_123567braille_dots_4567braille_dots_14567braille_dots_24567braille_dots_124567braille_dots_34567braille_dots_134567braille_dots_234567braille_dots_1234567braille_dots_8braille_dots_18braille_dots_28braille_dots_128braille_dots_38braille_dots_138braille_dots_238braille_dots_1238braille_dots_48braille_dots_148braille_dots_248braille_dots_1248braille_dots_348braille_dots_1348braille_dots_2348braille_dots_12348braille_dots_58braille_dots_158braille_dots_258braille_dots_1258braille_dots_358braille_dots_1358braille_dots_2358braille_dots_12358braille_dots_458braille_dots_1458braille_dots_2458braille_dots_12458braille_dots_3458braille_dots_13458braille_dots_23458braille_dots_123458braille_dots_68braille_dots_168braille_dots_268braille_dots_1268braille_dots_368braille_dots_1368braille_dots_2368braille_dots_12368braille_dots_468braille_dots_1468braille_dots_2468braille_dots_12468braille_dots_3468braille_dots_13468braille_dots_23468braille_dots_123468braille_dots_568braille_dots_1568braille_dots_2568braille_dots_12568braille_dots_3568braille_dots_13568braille_dots_23568braille_dots_123568braille_dots_4568braille_dots_14568braille_dots_24568braille_dots_124568braille_dots_34568braille_dots_134568braille_dots_234568braille_dots_1234568braille_dots_78braille_dots_178braille_dots_278braille_dots_1278braille_dots_378braille_dots_1378braille_dots_2378braille_dots_12378braille_dots_478braille_dots_1478braille_dots_2478braille_dots_12478braille_dots_3478braille_dots_13478braille_dots_23478braille_dots_123478braille_dots_578braille_dots_1578braille_dots_2578braille_dots_12578braille_dots_3578braille_dots_13578braille_dots_23578braille_dots_123578braille_dots_4578braille_dots_14578braille_dots_24578braille_dots_124578braille_dots_34578braille_dots_134578braille_dots_234578braille_dots_1234578braille_dots_678braille_dots_1678braille_dots_2678braille_dots_12678braille_dots_3678braille_dots_13678braille_dots_23678braille_dots_123678braille_dots_4678braille_dots_14678braille_dots_24678braille_dots_124678braille_dots_34678braille_dots_134678braille_dots_234678braille_dots_1234678braille_dots_5678braille_dots_15678braille_dots_25678braille_dots_125678braille_dots_35678braille_dots_135678braille_dots_235678braille_dots_1235678braille_dots_45678braille_dots_145678braille_dots_245678braille_dots_1245678braille_dots_345678braille_dots_1345678braille_dots_2345678braille_dots_12345678hpmute_acutemute_acutehpmute_gravemute_gravehpmute_asciicircummute_asciicircumhpmute_diaeresismute_diaeresishpmute_asciitildemute_asciitildehpliralirahpguilderguilderhpYdiaeresishpIOIOhplongminuslongminushpblockblockDdiaeresisDacute_accentDcedilla_accentDcircumflex_accentDgrave_accentDtildeDring_accentDRemovehpModelock1hpModelock2hpResetResethpSystemSystemhpUserUserhpClearLineClearLinehpInsertLineInsertLinehpDeleteLineDeleteLinehpInsertCharInsertCharhpDeleteCharDeleteCharhpBackTabBackTabhpKP_BackTabKP_BackTabExt16bit_LExt16bit_RosfCopyosfCutosfPasteosfBackTabosfBackSpaceosfClearosfEscapeosfAddModeosfPrimaryPasteosfQuickPasteosfPageLeftosfPageUposfPageDownosfPageRightosfActivateosfMenuBarosfLeftosfUposfRightosfDownosfEndLineosfBeginLineosfEndDataosfBeginDataosfPrevMenuosfNextMenuosfPrevFieldosfNextFieldosfSelectosfInsertosfUndoosfMenuosfCancelosfHelposfSelectAllosfDeselectAllosfReselectosfExtendosfRestoreosfDeleteSunFA_GraveSunFA_CircumSunFA_TildeSunFA_AcuteSunFA_DiaeresisSunFA_CedillaSunF36SunF37SunSys_ReqSunPropsSunFrontSunCopySunOpenSunPasteSunCutSunPowerSwitchSunAudioLowerVolumeSunAudioMuteSunAudioRaiseVolumeSunVideoDegaussSunVideoLowerBrightnessSunVideoRaiseBrightnessSunPowerSwitchShiftXF86SportXF86BrightnessAutoXF86MonBrightnessAutoXF86DisplayOffXF86OKXF86GoToXF86InfoXF86VendorLogoXF86MediaSelectProgramGuideXF86MediaSelectHomeXF86MediaLanguageMenuXF86MediaTitleMenuXF86AudioChannelModeXF86AspectRatioXF86MediaSelectPCXF86MediaSelectTVXF86MediaSelectCableXF86MediaSelectVCRXF86MediaSelectVCRPlusXF86MediaSelectSatelliteXF86MediaSelectTapeXF86MediaSelectRadioXF86MediaSelectTunerXF86MediaPlayerXF86MediaSelectTeletextXF86DVDXF86MediaSelectDVDXF86MediaSelectAuxiliaryXF86AudioXF86ChannelUpXF86ChannelDownXF86MediaPlaySlowXF86BreakXF86NumberEntryModeXF86VideoPhoneXF86ZoomResetXF86EditorXF86GraphicsEditorXF86PresentationXF86DatabaseXF86VoicemailXF86AddressbookXF86DisplayToggleXF86SpellCheckXF86ContextMenuXF86MediaRepeatXF8610ChannelsUpXF8610ChannelsDownXF86ImagesXF86NotificationCenterXF86PickupPhoneXF86HangupPhoneXF86LinkPhoneXF86FnXF86Fn_EscXF86Fn_F1XF86Fn_F2XF86Fn_F3XF86Fn_F4XF86Fn_F5XF86Fn_F6XF86Fn_F7XF86Fn_F8XF86Fn_F9XF86Fn_F10XF86Fn_F11XF86Fn_F12XF86Fn_1XF86Fn_2XF86Fn_DXF86Fn_EXF86Fn_FXF86Fn_SXF86Fn_BXF86FnRightShiftXF86Numeric0XF86Numeric1XF86Numeric2XF86Numeric3XF86Numeric4XF86Numeric5XF86Numeric6XF86Numeric7XF86Numeric8XF86Numeric9XF86NumericStarXF86NumericPoundXF86NumericAXF86NumericBXF86NumericCXF86NumericDXF86CameraFocusXF86WPSButtonXF86CameraZoomInXF86CameraZoomOutXF86CameraUpXF86CameraDownXF86CameraLeftXF86CameraRightXF86AttendantOnXF86AttendantOffXF86AttendantToggleXF86LightsToggleXF86ALSToggleXF86RefreshRateToggleXF86ButtonconfigXF86TaskmanagerXF86JournalXF86ControlPanelXF86AppSelectXF86ScreensaverXF86VoiceCommandXF86AssistantXF86EmojiPickerXF86DictateXF86CameraAccessEnableXF86CameraAccessDisableXF86CameraAccessToggleXF86AccessibilityXF86DoNotDisturbXF86BrightnessMinXF86BrightnessMaxXF86KbdInputAssistPrevXF86KbdInputAssistNextXF86KbdInputAssistPrevgroupXF86KbdInputAssistNextgroupXF86KbdInputAssistAcceptXF86KbdInputAssistCancelXF86RightUpXF86RightDownXF86LeftUpXF86LeftDownXF86RootMenuXF86MediaTopMenuXF86Numeric11XF86Numeric12XF86AudioDescXF863DModeXF86NextFavoriteXF86StopRecordXF86PauseRecordXF86VODXF86UnmuteXF86FastReverseXF86SlowReverseXF86DataXF86OnScreenKeyboardXF86PrivacyScreenToggleXF86SelectiveScreenshotXF86NextElementXF86PreviousElementXF86AutopilotEngageToggleXF86MarkWaypointXF86SosXF86NavChartXF86FishingChartXF86SingleRangeRadarXF86DualRangeRadarXF86RadarOverlayXF86TraditionalSonarXF86ClearvuSonarXF86SidevuSonarXF86NavInfoXF86Macro1XF86Macro2XF86Macro3XF86Macro4XF86Macro5XF86Macro6XF86Macro7XF86Macro8XF86Macro9XF86Macro10XF86Macro11XF86Macro12XF86Macro13XF86Macro14XF86Macro15XF86Macro16XF86Macro17XF86Macro18XF86Macro19XF86Macro20XF86Macro21XF86Macro22XF86Macro23XF86Macro24XF86Macro25XF86Macro26XF86Macro27XF86Macro28XF86Macro29XF86Macro30XF86MacroRecordStartXF86MacroRecordStopXF86MacroPresetCycleXF86MacroPreset1XF86MacroPreset2XF86MacroPreset3XF86KbdLcdMenu1XF86KbdLcdMenu2XF86KbdLcdMenu3XF86KbdLcdMenu4XF86KbdLcdMenu5XF86PerformanceModeXF86Switch_VT_1XF86Switch_VT_2XF86Switch_VT_3XF86Switch_VT_4XF86Switch_VT_5XF86Switch_VT_6XF86Switch_VT_7XF86Switch_VT_8XF86Switch_VT_9XF86Switch_VT_10XF86Switch_VT_11XF86Switch_VT_12XF86UngrabXF86ClearGrabXF86Next_VModeXF86Prev_VModeXF86LogWindowTreeXF86LogGrabInfoXF86ModeLockXF86MonBrightnessUpXF86MonBrightnessDownXF86KbdLightOnOffXF86KbdBrightnessUpXF86KbdBrightnessDownXF86MonBrightnessCycleXF86StandbyXF86AudioLowerVolumeXF86AudioMuteXF86AudioRaiseVolumeXF86AudioPlayXF86AudioStopXF86AudioPrevXF86AudioNextXF86HomePageXF86MailXF86StartXF86SearchXF86AudioRecordXF86CalculatorXF86MemoXF86ToDoListXF86CalendarXF86PowerDownXF86ContrastAdjustXF86RockerUpXF86RockerDownXF86RockerEnterXF86BackXF86ForwardXF86StopXF86RefreshXF86PowerOffXF86WakeUpXF86EjectXF86ScreenSaverXF86WWWXF86SleepXF86FavoritesXF86AudioPauseXF86AudioMediaXF86MyComputerXF86VendorHomeXF86LightBulbXF86ShopXF86HistoryXF86OpenURLXF86AddFavoriteXF86HotLinksXF86BrightnessAdjustXF86FinanceXF86CommunityXF86AudioRewindXF86BackForwardXF86Launch0XF86Launch1XF86Launch2XF86Launch3XF86Launch4XF86Launch5XF86Launch6XF86Launch7XF86Launch8XF86Launch9XF86LaunchAXF86LaunchBXF86LaunchCXF86LaunchDXF86LaunchEXF86LaunchFXF86ApplicationLeftXF86ApplicationRightXF86BookXF86CDXF86MediaSelectCDXF86CalculaterXF86ClearXF86CloseXF86CopyXF86CutXF86DisplayXF86DOSXF86DocumentsXF86ExcelXF86ExplorerXF86GameXF86GoXF86iTouchXF86LogOffXF86MarketXF86MeetingXF86MenuKBXF86MenuPBXF86MySitesXF86NewXF86NewsXF86OfficeHomeXF86OpenXF86OptionXF86PasteXF86PhoneXF86QXF86ReplyXF86ReloadXF86RotateWindowsXF86RotationPBXF86RotationKBXF86SaveXF86ScrollUpXF86ScrollDownXF86ScrollClickXF86SendXF86SpellXF86SplitScreenXF86SupportXF86TaskPaneXF86TerminalXF86ToolsXF86TravelXF86UserPBXF86User1KBXF86User2KBXF86VideoXF86WheelButtonXF86WordXF86XferXF86ZoomInXF86ZoomOutXF86AwayXF86MessengerXF86WebCamXF86MailForwardXF86PicturesXF86MusicXF86BatteryXF86BluetoothXF86WLANXF86UWBXF86AudioForwardXF86AudioRepeatXF86AudioRandomPlayXF86SubtitleXF86AudioCycleTrackXF86CycleAngleXF86FrameBackXF86FrameForwardXF86TimeXF86SelectXF86ViewXF86TopMenuXF86RedXF86GreenXF86YellowXF86BlueXF86SuspendXF86HibernateXF86TouchpadToggleXF86TouchpadOnXF86TouchpadOffXF86AudioMicMuteXF86KeyboardXF86WWANXF86RFKillXF86AudioPresetXF86RotationLockToggleXF86FullScreen"; pub(super) static KEYSYM_TO_IDX: PhfMap = PhfMap { key: 12913932095322966823, - disps: &[(0, 3), (1, 695), (0, 104), (0, 88), (1, 2181), (0, 27), (0, 97), (0, 392), (0, 8), (0, 30), (0, 1087), (0, 287), (0, 2), (0, 2), (0, 9), (0, 0), (0, 50), (0, 37), (0, 72), (0, 4), (0, 418), (0, 563), (0, 398), (0, 1567), (0, 533), (0, 28), (0, 434), (0, 24), (0, 38), (0, 1160), (0, 1), (0, 131), (0, 108), (0, 1), (0, 3), (0, 26), (0, 564), (0, 16), (0, 0), (0, 9), (0, 1), (0, 1), (0, 1204), (0, 0), (0, 4), (0, 1890), (0, 0), (0, 142), (2, 252), (0, 28), (0, 49), (0, 5), (0, 15), (0, 1), (0, 56), (0, 2), (0, 45), (0, 2180), (0, 2), (0, 36), (0, 1), (0, 0), (0, 27), (0, 81), (0, 0), (0, 2), (0, 85), (0, 0), (0, 1442), (0, 118), (0, 2), (0, 14), (0, 0), (0, 0), (0, 17), (0, 0), (0, 0), (0, 2), (0, 0), (0, 2), (0, 1), (0, 0), (0, 0), (0, 2), (0, 1), (0, 0), (0, 58), (0, 0), (0, 0), (0, 24), (0, 1), (0, 0), (0, 62), (0, 0), (0, 0), (0, 3), (0, 11), (0, 40), (0, 0), (0, 60), (0, 0), (0, 20), (0, 3), (0, 495), (0, 39), (0, 13), (0, 4), (0, 1528), (0, 1190), (0, 1441), (0, 218), (0, 147), (0, 1182), (0, 196), (0, 11), (0, 1), (0, 179), (0, 20), (0, 22), (0, 30), (0, 641), (0, 78), (0, 2445), (1, 724), (0, 535), (0, 1236), (0, 65), (0, 837), (0, 50), (0, 65), (0, 216), (0, 69), (0, 401), (0, 7), (0, 3), (0, 151), (0, 454), (0, 5), (0, 27), (0, 45), (0, 0), (0, 16), (0, 4), (0, 6), (0, 294), (0, 20), (0, 108), (0, 494), (0, 2), (0, 435), (0, 346), (0, 23), (0, 1619), (0, 197), (0, 16), (0, 1657), (0, 101), (0, 648), (0, 168), (0, 8), (1, 1065), (0, 5), (0, 15), (0, 45), (0, 2), (0, 45), (0, 2), (0, 49), (0, 3), (0, 24), (0, 22), (0, 11), (0, 306), (0, 22), (1, 429), (0, 52), (0, 19), (0, 1019), (0, 905), (1, 720), (0, 139), (0, 265), (0, 141), (0, 19), (0, 2), (0, 3), (0, 2), (0, 1576), (0, 5), (0, 5), (0, 6), (0, 715), (0, 2138), (0, 22), (1, 86), (0, 176), (0, 16), (0, 55), (0, 862), (4, 2141), (0, 0), (0, 4), (0, 1998), (0, 2), (0, 32), (0, 464), (0, 0), (1, 1051), (0, 190), (0, 2), (0, 1), (0, 21), (0, 17), (0, 95), (0, 10), (0, 86), (0, 113), (0, 53), (0, 113), (0, 91), (0, 178), (0, 121), (0, 45), (0, 18), (0, 17), (0, 15), (0, 141), (0, 0), (0, 1), (0, 41), (0, 1023), (0, 0), (0, 19), (0, 863), (0, 55), (0, 3), (0, 2), (0, 11), (0, 1), (0, 95), (0, 57), (0, 0), (0, 23), (0, 0), (0, 0), (1, 132), (0, 209), (1, 2254), (0, 6), (0, 0), (0, 1), (0, 3), (0, 2), (0, 2), (0, 62), (0, 0), (0, 182), (0, 1), (0, 0), (0, 13), (0, 70), (0, 1), (0, 1493), (0, 1), (0, 5), (0, 79), (0, 17), (0, 750), (0, 813), (0, 208), (0, 41), (0, 9), (0, 1), (0, 1), (0, 57), (0, 11), (2, 2060), (2, 296), (0, 1), (0, 1410), (0, 295), (0, 2363), (0, 505), (0, 612), (0, 1188), (0, 1), (0, 39), (1, 50), (0, 233), (0, 15), (0, 12), (0, 447), (0, 455), (11, 580), (4, 524), (0, 615), (3, 1411), (0, 21), (0, 31), (1, 1693), (0, 294), (0, 1070), (2, 176), (0, 380), (0, 3), (0, 2), (1, 2173), (0, 15), (0, 16), (1, 255), (0, 1), (0, 0), (0, 235), (0, 3), (0, 17), (3, 1527), (0, 418), (0, 0), (0, 256), (0, 20), (0, 587), (0, 72), (1, 388), (1, 348), (0, 13), (0, 1120), (9, 1906), (0, 98), (0, 153), (0, 62), (0, 5), (0, 149), (0, 0), (0, 9), (0, 344), (0, 113), (0, 132), (2, 1609), (0, 44), (0, 39), (0, 350), (0, 456), (21, 841), (0, 744), (0, 28), (0, 5), (8, 1357), (0, 119), (0, 703), (0, 8), (6, 2088), (0, 1365), (0, 4), (0, 267), (0, 233), (0, 9), (0, 0), (0, 4), (0, 5), (0, 0), (0, 70), (9, 911), (0, 740), (0, 467), (3, 1475), (2, 132), (0, 397), (0, 1148), (0, 92), (1, 2362), (0, 341), (0, 0), (0, 97), (4, 1258), (0, 2), (0, 712), (0, 292), (0, 49), (0, 560), (0, 16), (0, 7), (0, 23), (0, 211), (0, 133), (0, 86), (0, 2359), (4, 946), (0, 320), (0, 1311), (0, 1743), (0, 16), (0, 15), (3, 1630), (0, 4), (0, 15), (4, 1692), (0, 643), (0, 28), (0, 500), (0, 12), (0, 66), (0, 121), (0, 3), (0, 35), (0, 3), (0, 0), (0, 433), (0, 130), (0, 0), (0, 90), (0, 1089), (0, 0), (0, 781), (0, 13), (0, 0), (0, 1464), (0, 0), (0, 45), (0, 93), (0, 329), (0, 42), (0, 30), (0, 373), (0, 204), (0, 2303), (0, 1), (0, 1), (0, 7), (0, 0), (0, 0), (0, 18), (0, 379), (0, 0), (2, 1071), (0, 2), (0, 0), (10, 2282), (0, 7), (0, 144), (3, 1665), (0, 17), (0, 0), (0, 2162), (0, 1), (0, 306), (0, 304), (0, 236), (30, 2291), (0, 2280), (0, 10), (3, 927), (0, 131), (1, 358), (0, 13), (0, 1601), (0, 202), (0, 0), (1, 536), (1, 81), (0, 472), (0, 1), (1, 383), (0, 943), (109, 892), (4, 1803), (174, 1956), (4, 1749), (14, 670), (0, 155), (0, 684), (20, 912), (1, 722), (0, 12), (0, 1), (14, 117), (0, 87), (0, 183), (0, 1044), (0, 109), (21, 444), (0, 10), (0, 66), (0, 2), (0, 25), (0, 4), (0, 1520), (0, 7), (11, 471), (0, 33), (0, 33), (2, 1793), (0, 141), (3, 34), (7, 562), (2, 1634), (0, 261), (0, 2302), (5, 2269), (0, 97), (14, 1811), (1, 179), (0, 16), (2, 653), (0, 6), (0, 142), (0, 114), (0, 2), (0, 24), (0, 282), (1, 1739), (3, 649), (0, 133)], - map: &[1830, 1604, 1277, 2457, 962, 2315, 418, 2463, 169, 713, 1050, 412, 2054, 759, 1985, 463, 889, 1810, 2366, 1741, 276, 1658, 1369, 2377, 2525, 1853, 345, 358, 1717, 2570, 1938, 1699, 349, 2428, 1530, 488, 754, 815, 44, 1417, 632, 1697, 359, 1540, 2332, 2137, 74, 2419, 883, 2256, 1455, 2406, 2497, 1194, 357, 11, 1059, 943, 2203, 842, 2263, 1984, 2316, 1856, 892, 1590, 596, 1092, 2286, 1456, 2144, 2007, 234, 2008, 543, 1594, 237, 1940, 2301, 1922, 533, 1526, 393, 1158, 1991, 2546, 780, 1447, 2180, 51, 927, 375, 2016, 679, 2287, 2402, 1106, 186, 2434, 136, 1257, 1608, 2200, 339, 303, 1349, 1401, 1518, 286, 1309, 2173, 2089, 687, 2572, 556, 1700, 80, 1826, 1036, 2235, 2554, 793, 802, 699, 614, 457, 944, 486, 1419, 1103, 2322, 1635, 1298, 2529, 1990, 118, 1555, 1829, 1780, 154, 865, 176, 268, 1121, 1935, 2262, 2446, 832, 630, 2106, 236, 487, 1903, 1756, 388, 1892, 1875, 1428, 1704, 411, 2014, 758, 347, 1043, 4, 49, 2271, 1898, 2339, 1636, 1312, 2220, 1928, 1467, 111, 1151, 1729, 1398, 2575, 1506, 671, 1141, 2153, 574, 454, 882, 1720, 39, 191, 1017, 1433, 2405, 2195, 1479, 625, 1174, 1155, 1757, 2095, 2252, 1963, 2285, 2545, 515, 644, 726, 2107, 100, 1593, 2306, 2026, 2238, 2345, 934, 1318, 2469, 382, 1454, 1808, 812, 1388, 1400, 2077, 532, 1619, 1674, 2147, 647, 914, 1446, 1018, 1930, 686, 104, 285, 741, 732, 1921, 2096, 1779, 2320, 982, 1777, 703, 704, 1607, 1295, 1224, 143, 342, 1663, 1347, 239, 1006, 613, 2251, 162, 10, 1899, 18, 1225, 334, 1554, 1507, 202, 653, 439, 872, 2234, 1996, 801, 2458, 779, 506, 2113, 2333, 2385, 2321, 1035, 425, 1634, 1297, 117, 2445, 96, 1189, 2513, 787, 504, 174, 194, 572, 2261, 1172, 1703, 980, 1758, 1723, 2551, 2193, 897, 2239, 2383, 2486, 626, 1461, 1064, 822, 245, 1051, 2013, 1193, 2066, 15, 760, 2355, 502, 2351, 2563, 1198, 192, 48, 1387, 2528, 1891, 916, 849, 363, 1204, 2139, 670, 1675, 99, 2202, 974, 417, 912, 1972, 1842, 1146, 616, 2574, 1836, 1313, 398, 2094, 1797, 1110, 2284, 1744, 1065, 702, 1495, 2083, 2305, 318, 1943, 2194, 214, 1537, 1834, 1317, 585, 381, 736, 1625, 65, 747, 1553, 1591, 1162, 2461, 2552, 933, 870, 1858, 1746, 1686, 86, 1484, 619, 1179, 97, 230, 2111, 1814, 1564, 1002, 685, 1221, 2465, 2177, 161, 2042, 2338, 573, 2354, 1662, 1835, 2161, 2550, 38, 1371, 173, 1685, 615, 629, 1785, 1986, 2043, 1217, 437, 871, 1640, 1304, 2210, 458, 1501, 244, 2060, 142, 2112, 848, 1905, 2519, 424, 1722, 2468, 1995, 190, 1034, 998, 725, 1436, 509, 2277, 75, 2514, 1188, 319, 2212, 1702, 790, 547, 720, 896, 1451, 1394, 956, 1460, 1578, 1095, 1962, 2533, 1512, 1973, 1145, 727, 25, 14, 1345, 1303, 1786, 2389, 213, 1203, 521, 1096, 1003, 462, 888, 298, 1549, 2025, 985, 907, 2065, 1857, 1008, 2312, 55, 2184, 7, 911, 1654, 511, 1598, 2485, 1881, 1426, 643, 1862, 1796, 485, 560, 973, 1577, 1979, 2082, 1399, 282, 735, 538, 2515, 271, 1161, 1040, 2126, 2157, 1325, 380, 289, 2326, 180, 2450, 326, 304, 2372, 913, 456, 1612, 1282, 1575, 947, 201, 932, 2207, 1001, 1692, 1377, 1535, 1813, 30, 618, 1359, 351, 2413, 2302, 1879, 2480, 1907, 810, 1529, 836, 344, 37, 2159, 386, 1837, 1823, 123, 2343, 2479, 1880, 253, 1209, 1392, 1483, 981, 1178, 1405, 1624, 350, 491, 1127, 2569, 2291, 1047, 223, 2481, 1841, 954, 1882, 1733, 1673, 2030, 2002, 1450, 198, 2019, 1499, 2221, 656, 2517, 2276, 693, 1572, 2310, 1109, 546, 955, 2422, 1597, 1768, 1944, 1643, 1322, 370, 921, 674, 1070, 938, 362, 256, 2573, 1265, 1584, 1459, 850, 579, 1022, 2433, 1978, 1129, 408, 1007, 1803, 2492, 66, 1945, 2290, 103, 54, 1926, 708, 2072, 167, 1404, 559, 1116, 325, 1843, 939, 147, 2245, 2311, 1908, 522, 1690, 1709, 1425, 2473, 1679, 1714, 1949, 1950, 2359, 876, 122, 2222, 2265, 27, 2048, 1097, 2124, 1133, 2117, 232, 2325, 429, 2449, 1931, 2382, 2371, 1925, 1376, 1511, 1053, 1144, 2421, 520, 2237, 2432, 1195, 835, 1623, 179, 1691, 1128, 343, 1534, 2078, 2199, 307, 537, 1948, 222, 217, 655, 1134, 247, 1772, 1611, 1281, 233, 2070, 2342, 1822, 635, 471, 1569, 1653, 1323, 1391, 1039, 920, 1895, 2556, 1961, 1216, 2100, 1049, 852, 552, 2568, 2001, 1114, 1727, 1466, 1069, 824, 1743, 1732, 73, 79, 1801, 1528, 95, 2018, 1790, 1056, 2087, 692, 2223, 2309, 146, 1868, 809, 526, 746, 2178, 1041, 2029, 2270, 1130, 2439, 1559, 1033, 673, 1613, 265, 2348, 1288, 1747, 2047, 1115, 2409, 1783, 369, 753, 87, 20, 902, 1909, 2099, 1792, 1752, 2466, 636, 623, 2391, 765, 1878, 707, 608, 2215, 165, 1083, 1523, 903, 2169, 291, 2456, 1565, 130, 1630, 1308, 368, 601, 1678, 1023, 1522, 2398, 875, 1250, 567, 1052, 2257, 2567, 937, 378, 492, 2116, 1383, 1489, 32, 1184, 85, 1524, 337, 1854, 2190, 830, 2216, 43, 1726, 2566, 2281, 1191, 428, 2416, 259, 1847, 960, 1132, 497, 2198, 2523, 1802, 508, 296, 1897, 1150, 1819, 469, 768, 816, 2538, 107, 2516, 2069, 1983, 859, 2279, 951, 665, 2555, 446, 624, 72, 1587, 1581, 324, 1441, 1767, 1123, 1472, 1173, 1167, 1452, 300, 2300, 2408, 330, 1567, 1408, 1333, 2426, 1546, 1416, 977, 91, 2046, 1011, 68, 197, 1668, 90, 2086, 17, 1516, 1761, 784, 528, 1210, 853, 2349, 2012, 542, 731, 2130, 448, 890, 2313, 2314, 712, 739, 1560, 524, 1287, 168, 2496, 2053, 1657, 1367, 1603, 2365, 2255, 1465, 1817, 1149, 1240, 1696, 989, 278, 1884, 1716, 1937, 109, 2214, 404, 121, 2006, 814, 2185, 1434, 387, 2167, 2059, 2183, 565, 2331, 2036, 1771, 315, 1967, 600, 1382, 2397, 402, 356, 1563, 1028, 1074, 1642, 1321, 1539, 1896, 1629, 566, 70, 1860, 2489, 1488, 60, 1183, 841, 2438, 1965, 1855, 251, 2023, 2455, 129, 1482, 2148, 209, 1090, 2502, 2189, 1242, 1954, 2522, 204, 649, 1749, 1647, 299, 392, 984, 2394, 678, 1515, 2467, 1573, 2241, 1120, 2021, 1982, 906, 639, 979, 1738, 752, 1737, 978, 1196, 1220, 1955, 1915, 1440, 1807, 2387, 840, 42, 2076, 763, 676, 1602, 1285, 757, 1828, 595, 1331, 1471, 2246, 1867, 1432, 1789, 59, 328, 591, 2227, 2390, 1667, 61, 2530, 1307, 1027, 858, 1755, 1932, 1407, 407, 1414, 755, 2032, 926, 2105, 1166, 295, 183, 153, 1939, 1000, 2201, 2052, 416, 2495, 1286, 1656, 864, 1902, 2280, 1365, 2364, 329, 622, 480, 1852, 2543, 1087, 2415, 2282, 2404, 1936, 2508, 1505, 1140, 270, 241, 2535, 2005, 374, 997, 2058, 881, 2330, 127, 2534, 1131, 2228, 1566, 1666, 1913, 1538, 773, 1192, 1825, 41, 355, 1762, 1073, 2376, 262, 1100, 996, 1719, 554, 966, 1736, 813, 1953, 221, 453, 1784, 1470, 250, 1089, 1592, 1278, 1075, 2134, 1920, 1154, 1770, 792, 391, 134, 2521, 1445, 949, 651, 925, 1213, 534, 1519, 696, 994, 525, 2443, 316, 2298, 1751, 2141, 857, 1077, 1695, 769, 2205, 1476, 477, 1171, 1241, 605, 2562, 2049, 2425, 1753, 1873, 1215, 697, 1294, 1766, 2362, 2344, 2319, 2233, 1827, 1806, 799, 2295, 2490, 116, 2336, 2548, 756, 964, 312, 957, 484, 297, 503, 2353, 108, 1942, 2505, 2542, 2260, 1901, 527, 152, 628, 2444, 2104, 208, 240, 415, 1633, 1296, 2103, 1532, 730, 782, 531, 1431, 821, 2022, 1119, 2269, 1101, 2035, 47, 1890, 1820, 6, 1851, 2088, 2527, 2337, 777, 1504, 2229, 2363, 606, 1959, 588, 677, 140, 2539, 184, 1885, 1138, 1211, 514, 433, 1373, 2024, 1682, 89, 1918, 942, 2093, 961, 847, 2188, 1063, 1493, 701, 1421, 1015, 1971, 317, 659, 863, 1833, 2506, 1316, 2483, 1413, 226, 967, 684, 1750, 1520, 1871, 553, 965, 2429, 1672, 476, 1032, 869, 1046, 2532, 1248, 390, 1919, 1157, 1444, 287, 516, 1800, 2318, 589, 421, 1760, 141, 716, 160, 2431, 23, 728, 2369, 1568, 1661, 1343, 1475, 2442, 1170, 1684, 724, 1254, 610, 593, 2226, 483, 77, 2187, 2071, 2110, 1153, 2510, 1086, 886, 1994, 2484, 115, 2063, 243, 410, 2335, 423, 1632, 2041, 1293, 1941, 294, 1386, 621, 2075, 2559, 641, 2561, 501, 19, 517, 258, 845, 627, 1570, 1544, 1872, 698, 1187, 611, 1958, 460, 887, 188, 570, 1492, 1934, 2011, 1840, 895, 2491, 13, 820, 1094, 2232, 311, 1202, 2064, 211, 2268, 930, 1628, 2400, 1900, 2303, 2460, 1079, 668, 1062, 587, 1443, 2511, 139, 2498, 539, 1108, 2526, 78, 983, 778, 1228, 436, 1970, 2092, 594, 63, 1616, 1249, 2039, 1742, 1469, 640, 157, 1551, 1606, 846, 397, 862, 745, 1315, 2155, 2482, 189, 683, 797, 1533, 1042, 338, 2146, 530, 1793, 399, 868, 646, 1031, 277, 910, 1477, 379, 1707, 1301, 2109, 931, 1812, 1357, 420, 2317, 1701, 1125, 403, 229, 158, 2090, 764, 2101, 1237, 2368, 1660, 1341, 2208, 592, 171, 1045, 5, 1683, 1639, 1302, 36, 361, 584, 885, 1509, 681, 1126, 1889, 789, 1, 664, 2452, 2062, 238, 1057, 2503, 617, 1960, 571, 744, 2430, 172, 313, 1671, 2560, 1160, 2275, 1061, 507, 2142, 2520, 634, 1082, 990, 2478, 323, 894, 274, 8, 46, 254, 459, 715, 2182, 1510, 1964, 1143, 1596, 1993, 1589, 2380, 1977, 252, 1021, 948, 1778, 2010, 1951, 1200, 1214, 1076, 2079, 929, 1966, 2289, 1839, 2346, 1582, 590, 138, 1558, 1403, 1280, 558, 360, 82, 909, 1080, 2253, 1093, 263, 1058, 2175, 2091, 536, 228, 1107, 102, 1989, 12, 2040, 1038, 2236, 1689, 1708, 971, 1754, 612, 2122, 946, 120, 718, 1527, 2304, 1159, 2448, 1610, 1262, 1877, 1375, 1831, 733, 867, 473, 788, 1748, 348, 1795, 2254, 834, 1044, 1176, 275, 2393, 1014, 1811, 419, 1218, 216, 1947, 529, 413, 805, 751, 1848, 2273, 35, 2358, 795, 341, 1497, 24, 1481, 654, 1821, 2341, 1846, 1390, 919, 953, 2577, 1765, 434, 1713, 218, 576, 196, 2571, 972, 1113, 1412, 901, 607, 1759, 1731, 661, 1478, 1874, 1508, 135, 2017, 1406, 52, 2250, 829, 26, 691, 995, 1906, 2308, 1764, 761, 2471, 2163, 1641, 1320, 936, 2000, 1208, 1739, 688, 145, 2242, 2181, 2507, 1142, 1556, 1595, 1276, 781, 2420, 1923, 81, 1219, 669, 367, 1933, 597, 2098, 851, 1894, 384, 1620, 603, 545, 970, 1557, 1609, 1279, 2045, 340, 2531, 557, 1651, 1351, 1402, 101, 1638, 689, 1020, 1688, 2174, 1794, 500, 2211, 1999, 178, 1037, 750, 2435, 2537, 803, 1397, 1156, 64, 2120, 1818, 2081, 2357, 1849, 177, 1677, 2347, 2288, 2447, 1314, 2323, 1374, 1355, 1571, 2565, 1066, 1617, 1480, 119, 1048, 1621, 1299, 427, 1998, 1976, 1844, 767, 1521, 444, 1946, 405, 1255, 34, 2015, 1876, 246, 2272, 2292, 2324, 2459, 2370, 2340, 833, 2068, 83, 215, 71, 1622, 1300, 1861, 535, 366, 442, 874, 2578, 2143, 672, 551, 976, 1721, 2407, 1423, 264, 2464, 1712, 1845, 1067, 2027, 900, 284, 722, 255, 1799, 2576, 1866, 555, 2176, 2085, 918, 598, 2307, 899, 144, 544, 969, 1457, 935, 1649, 575, 2437, 738, 195, 2299, 308, 690, 2500, 2196, 564, 2549, 2381, 915, 1019, 383, 1561, 648, 1705, 1486, 1816, 1165, 231, 1422, 1016, 435, 175, 1430, 705, 494, 1781, 2151, 1788, 163, 1883, 1773, 2356, 1650, 2165, 642, 1275, 2213, 2454, 2028, 489, 2044, 631, 1415, 1381, 279, 2396, 440, 873, 314, 1724, 1068, 1487, 791, 1182, 1239, 2114, 1319, 2487, 1494, 2097, 426, 88, 2536, 2470, 2179, 828, 1676, 766, 2564, 774, 2403, 1190, 2206, 1769, 562, 2553, 1233, 549, 1687, 898, 2197, 1646, 1458, 1514, 1396, 1728, 1081, 519, 541, 40, 2115, 112, 465, 2067, 2, 1997, 1981, 1025, 1207, 2034, 1439, 1464, 1552, 1148, 917, 396, 364, 2293, 1782, 1975, 1974, 335, 550, 975, 1418, 740, 1652, 1353, 1655, 1329, 2352, 28, 467, 1579, 1306, 1601, 1284, 321, 320, 1863, 490, 58, 2084, 1026, 1725, 586, 2225, 1206, 2051, 604, 1463, 385, 1147, 1776, 2436, 1904, 2328, 1238, 400, 1112, 2401, 2462, 1164, 540, 1805, 2494, 2424, 968, 1745, 2417, 2504, 1485, 2218, 1180, 1815, 1389, 620, 182, 2145, 498, 563, 1410, 1626, 1427, 1363, 2004, 748, 838, 248, 125, 2057, 880, 1266, 2329, 493, 1305, 658, 1912, 1124, 1665, 1380, 114, 273, 353, 1988, 581, 1072, 57, 212, 261, 666, 1718, 2453, 839, 905, 1586, 1735, 1099, 2219, 33, 1952, 1798, 336, 53, 1437, 2240, 1449, 1694, 1711, 650, 220, 2132, 1181, 637, 401, 1226, 249, 2475, 924, 737, 2395, 272, 988, 993, 0, 2074, 56, 1859, 1118, 986, 1865, 1212, 695, 452, 1438, 2080, 1980, 1424, 1024, 706, 1409, 2102, 856, 582, 267, 1462, 451, 710, 283, 721, 734, 561, 1600, 1283, 327, 305, 1327, 207, 662, 2541, 1637, 1599, 513, 2278, 633, 2412, 1864, 1681, 1730, 2488, 1562, 2297, 1379, 479, 518, 2476, 1055, 717, 2128, 16, 2119, 1627, 2327, 414, 749, 2544, 711, 200, 776, 2033, 2224, 2050, 1513, 652, 523, 2493, 723, 2558, 2373, 1693, 1710, 1361, 164, 2209, 1536, 151, 2451, 1503, 2414, 1136, 2378, 406, 206, 657, 290, 811, 346, 2056, 941, 959, 1824, 2388, 1929, 1927, 1236, 1740, 1664, 1393, 105, 1910, 31, 2003, 2518, 922, 580, 1177, 235, 199, 1585, 372, 1098, 904, 2374, 512, 1734, 770, 1205, 2204, 807, 1245, 98, 762, 2031, 133, 1448, 203, 1987, 1870, 1030, 786, 389, 1091, 76, 2361, 1644, 2386, 2474, 1152, 257, 694, 22, 992, 1615, 113, 1378, 1117, 306, 663, 2441, 1411, 2038, 219, 1832, 2249, 1474, 1468, 1169, 148, 124, 510, 1088, 482, 855, 2186, 1253, 225, 999, 149, 775, 2296, 432, 2231, 729, 132, 1914, 783, 2360, 2020, 940, 1054, 1420, 1850, 826, 1680, 1715, 2073, 1385, 2172, 877, 2512, 2334, 1491, 2540, 373, 709, 371, 2118, 1004, 2350, 1631, 430, 1804, 2192, 1576, 266, 742, 280, 84, 45, 1186, 2267, 2375, 205, 2557, 660, 958, 819, 1618, 293, 854, 1548, 185, 879, 928, 450, 891, 1230, 1292, 1135, 667, 94, 1924, 2243, 1787, 743, 675, 1013, 1078, 2294, 771, 599, 719, 583, 2384, 1969, 431, 1916, 3, 1774, 2259, 2150, 1957, 1009, 2411, 260, 62, 2410, 156, 837, 1648, 1337, 578, 332, 302, 181, 682, 474, 1706, 499, 93, 2499, 1670, 2501, 21, 2477, 1791, 772, 1893, 1531, 1264, 1163, 963, 2055, 1869, 2264, 2108, 1542, 170, 844, 1614, 714, 950, 1887, 2472, 1888, 645, 700, 1659, 1339, 69, 2248, 2547, 309, 1698, 1473, 1541, 1168, 1005, 1311, 481, 1763, 310, 2367, 2230, 2217, 884, 242, 923, 794, 1085, 292, 2171, 131, 609, 1525, 187, 991, 1111, 1886, 1838, 2440, 1384, 1227, 495, 2061, 106, 568, 496, 638, 2258, 1490, 2379, 1185, 2399, 1917, 893, 1775, 50, 1290, 224, 2191, 475, 1429, 1105, 2009, 817, 1060, 2266, 1442, 505, 1645, 1395, 2423, 394, 137, 1956, 1435, 1547, 2524, 1583, 1580, 1251, 376, 1259, 680, 1517, 2274, 2418, 987, 1588, 1310, 1199, 1992, 1012, 1010, 1968, 908, 785, 2392, 1122, 1453, 2037, 227, 860, 1550, 1605, 409, 2149, 1911, 29, 952, 155, 210, 331, 301, 1809, 1071, 945, 1335, 861, 377, 395, 2283, 92, 2427, 2244, 1260, 288, 1669, 878, 569, 866, 2247, 1029, 269, 2509, 843, 1175], + disps: &[(0, 2), (1, 163), (0, 218), (0, 249), (1, 1525), (0, 114), (0, 30), (0, 449), (0, 26), (0, 11), (0, 724), (0, 10), (0, 0), (0, 3), (0, 5), (0, 1), (0, 160), (0, 11), (0, 105), (0, 2), (0, 50), (0, 1265), (0, 1110), (0, 524), (0, 1707), (0, 19), (0, 1481), (0, 2), (0, 0), (0, 1377), (0, 10), (0, 15), (0, 3), (0, 0), (0, 0), (0, 9), (0, 196), (0, 2), (0, 0), (0, 464), (0, 1), (0, 0), (0, 1001), (0, 0), (0, 0), (0, 783), (0, 0), (0, 45), (0, 923), (0, 49), (0, 55), (0, 0), (0, 1), (0, 2), (0, 19), (0, 17), (0, 47), (3, 82), (0, 0), (0, 4), (0, 8), (0, 4), (0, 138), (0, 3), (0, 0), (0, 7), (0, 68), (0, 0), (1, 964), (0, 325), (0, 0), (0, 9), (0, 0), (0, 0), (0, 86), (0, 18), (0, 2), (0, 18), (0, 0), (0, 6), (0, 17), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 302), (0, 0), (0, 0), (0, 3), (0, 1), (0, 0), (0, 127), (0, 0), (0, 3), (0, 76), (0, 49), (0, 18), (0, 1), (0, 17), (0, 0), (0, 1015), (0, 14), (0, 1478), (0, 18), (0, 25), (0, 68), (0, 468), (0, 1498), (0, 52), (0, 392), (0, 1228), (0, 552), (0, 312), (0, 10), (0, 14), (0, 25), (0, 31), (0, 108), (0, 71), (0, 22), (0, 265), (4, 2420), (3, 1378), (0, 523), (0, 208), (0, 1918), (0, 299), (0, 80), (0, 392), (0, 143), (0, 16), (0, 2372), (0, 0), (0, 0), (0, 7), (0, 1131), (0, 1), (0, 323), (0, 45), (0, 1), (0, 131), (0, 123), (0, 10), (0, 974), (0, 62), (0, 68), (0, 99), (0, 1), (0, 322), (0, 162), (0, 59), (0, 2388), (0, 303), (0, 69), (1, 1322), (0, 255), (0, 2103), (0, 102), (0, 22), (1, 1118), (0, 6), (0, 4), (0, 6), (0, 12), (0, 30), (0, 9), (0, 44), (0, 13), (0, 1696), (0, 67), (0, 14), (0, 555), (0, 279), (0, 1423), (0, 1129), (0, 123), (1, 2023), (2, 50), (1, 1341), (0, 662), (0, 433), (0, 5), (0, 6), (0, 12), (0, 0), (0, 5), (0, 1084), (0, 0), (0, 0), (0, 1), (3, 1726), (3, 1321), (0, 45), (1, 1291), (0, 68), (0, 14), (0, 35), (0, 1821), (0, 665), (0, 1), (0, 2), (4, 2398), (0, 13), (0, 35), (0, 1131), (0, 0), (1, 418), (0, 13), (0, 0), (0, 5), (0, 1), (0, 169), (0, 3), (0, 0), (0, 167), (0, 4), (0, 18), (0, 54), (0, 515), (0, 125), (0, 2), (0, 17), (0, 9), (0, 18), (0, 16), (0, 29), (0, 9), (0, 1), (0, 16), (0, 120), (0, 0), (0, 13), (2, 524), (0, 12), (0, 1), (0, 190), (0, 1), (0, 1), (0, 120), (0, 247), (0, 1), (0, 75), (0, 0), (0, 0), (0, 875), (0, 276), (1, 388), (0, 9), (0, 1), (0, 0), (0, 12), (0, 44), (0, 16), (0, 2), (0, 2), (0, 101), (0, 1), (0, 3), (0, 3), (0, 6), (0, 1), (0, 206), (0, 5), (0, 6), (0, 1393), (0, 246), (0, 273), (0, 251), (0, 196), (0, 157), (0, 210), (0, 0), (0, 14), (0, 1751), (0, 50), (0, 269), (0, 351), (0, 12), (1, 1630), (1, 860), (1, 2086), (0, 190), (0, 1790), (0, 2401), (0, 16), (0, 25), (0, 579), (0, 110), (0, 4), (0, 10), (1, 697), (0, 155), (9, 1311), (5, 2102), (1, 254), (2, 1237), (0, 100), (0, 60), (2, 1826), (0, 59), (0, 182), (8, 260), (0, 189), (0, 4), (0, 0), (3, 2491), (0, 1), (0, 19), (0, 2451), (0, 6), (0, 1), (0, 777), (0, 0), (0, 11), (1, 1971), (0, 351), (0, 24), (0, 49), (0, 11), (0, 1141), (0, 94), (3, 829), (0, 182), (0, 101), (0, 1489), (5, 1236), (0, 173), (4, 390), (0, 1107), (0, 5), (0, 93), (0, 0), (0, 721), (0, 1091), (0, 24), (0, 84), (0, 1642), (0, 683), (0, 198), (0, 1294), (7, 764), (3, 323), (0, 1805), (0, 15), (0, 952), (3, 742), (0, 1296), (0, 1659), (0, 323), (18, 2139), (0, 846), (0, 232), (0, 1245), (0, 86), (0, 35), (0, 14), (0, 39), (0, 139), (0, 7), (0, 118), (8, 2087), (1, 1151), (0, 72), (2, 531), (0, 1942), (0, 1555), (1, 1699), (0, 124), (4, 2345), (0, 2168), (0, 2), (0, 56), (20, 2047), (0, 0), (0, 498), (0, 120), (0, 6), (0, 487), (0, 2), (0, 54), (0, 14), (0, 4), (0, 26), (0, 76), (0, 292), (40, 890), (0, 0), (0, 828), (0, 1207), (0, 40), (0, 17), (5, 427), (0, 10), (0, 111), (1, 204), (0, 1660), (0, 10), (0, 682), (0, 0), (0, 3), (0, 47), (0, 4), (0, 14), (0, 534), (0, 1), (0, 1027), (3, 736), (0, 3), (0, 1085), (1, 117), (0, 2), (1, 1296), (0, 0), (0, 0), (0, 283), (0, 0), (0, 77), (0, 13), (0, 576), (0, 26), (0, 23), (0, 122), (0, 163), (1, 152), (0, 1), (0, 11), (0, 656), (0, 0), (0, 1), (0, 1), (0, 14), (0, 0), (10, 2334), (0, 1), (0, 0), (0, 472), (0, 3), (0, 276), (6, 2405), (0, 88), (0, 0), (0, 165), (0, 1), (0, 18), (1, 1783), (0, 5), (1, 807), (0, 75), (0, 9), (2, 665), (0, 1185), (3, 2145), (0, 16), (0, 884), (0, 665), (0, 23), (0, 705), (1, 1274), (0, 134), (0, 9), (0, 18), (0, 1505), (16, 892), (9, 1001), (488, 2035), (13, 986), (6, 2036), (0, 186), (0, 49), (17, 85), (0, 165), (0, 14), (0, 13), (1, 1106), (0, 1), (0, 538), (0, 42), (0, 631), (3, 1612), (0, 23), (0, 36), (0, 6), (0, 41), (0, 2), (0, 1015), (0, 2), (20, 880), (0, 32), (0, 15), (0, 417), (0, 303), (3, 474), (13, 15), (0, 1728), (0, 419), (1, 2328), (5, 1347), (0, 134), (9, 878), (0, 1932), (0, 56), (6, 1649), (0, 1), (0, 91), (0, 148), (0, 668), (0, 13), (0, 85), (3, 1130), (85, 1316), (0, 845)], + map: &[1789, 1985, 716, 1390, 2044, 824, 964, 230, 727, 174, 556, 1449, 2578, 1454, 151, 109, 2550, 776, 2287, 2202, 2425, 1894, 822, 1598, 2599, 2402, 1552, 2312, 297, 2386, 1764, 2103, 1434, 927, 1184, 633, 1536, 1216, 2319, 1520, 2100, 1878, 1787, 1762, 1159, 335, 2466, 1351, 1441, 1747, 965, 504, 1018, 654, 943, 1832, 2221, 1065, 1522, 1290, 442, 1357, 978, 740, 581, 604, 1659, 660, 1056, 250, 30, 1559, 2396, 1255, 192, 33, 2146, 2431, 1704, 52, 1490, 2172, 1633, 2041, 2244, 2012, 2602, 47, 1530, 2070, 1952, 14, 1966, 405, 863, 295, 2011, 2478, 1929, 600, 2590, 2201, 603, 1404, 1406, 313, 924, 1816, 1714, 1135, 1095, 409, 391, 2523, 942, 645, 1011, 1578, 321, 1100, 1042, 983, 2337, 2223, 2209, 995, 711, 183, 161, 1248, 1786, 2197, 1067, 119, 517, 4, 2582, 259, 672, 695, 71, 847, 2150, 210, 39, 256, 2448, 2321, 252, 2571, 2109, 1905, 2218, 306, 565, 1884, 2389, 652, 1487, 2623, 289, 2457, 876, 1579, 1027, 838, 403, 1168, 687, 2050, 1800, 1006, 1643, 1376, 426, 1369, 1961, 601, 1401, 879, 1097, 1133, 1674, 1732, 1266, 90, 2185, 702, 668, 1007, 1050, 544, 66, 1396, 1691, 2526, 1212, 2021, 1409, 180, 116, 1210, 1478, 1426, 134, 1398, 2032, 2544, 2370, 2496, 1005, 1445, 2401, 243, 785, 1982, 2583, 305, 545, 2601, 1560, 233, 2159, 2422, 610, 856, 1729, 1805, 638, 2331, 1215, 331, 933, 1710, 207, 1428, 267, 1923, 1555, 2025, 1507, 959, 992, 541, 1308, 620, 423, 1856, 2361, 910, 1130, 1165, 1600, 1999, 1746, 1842, 2537, 1885, 554, 400, 2079, 1726, 1688, 1112, 1639, 733, 1528, 446, 971, 2354, 1431, 1092, 1667, 2565, 1995, 2118, 1943, 58, 515, 1542, 2414, 2367, 492, 1585, 885, 1936, 2017, 2290, 204, 1902, 2541, 1556, 611, 1071, 1920, 80, 363, 1834, 1979, 23, 573, 92, 2076, 1108, 370, 1318, 2502, 147, 83, 1716, 697, 512, 482, 1664, 746, 505, 980, 2436, 617, 507, 2232, 1435, 1253, 2302, 767, 49, 1898, 2254, 480, 1610, 125, 351, 1591, 2592, 262, 20, 797, 700, 238, 1615, 1221, 1471, 2515, 2613, 1951, 1144, 1779, 214, 2281, 2049, 1992, 1949, 953, 1226, 1224, 1001, 2351, 501, 1754, 2432, 2200, 1151, 844, 1537, 1797, 2293, 1382, 1174, 1411, 1706, 1188, 1314, 665, 1132, 1723, 397, 903, 1738, 688, 763, 2397, 550, 698, 157, 1015, 738, 629, 1676, 521, 2208, 921, 225, 1950, 477, 1321, 641, 2299, 812, 1697, 1230, 708, 730, 1565, 811, 2175, 2376, 2318, 2085, 891, 896, 2605, 1484, 955, 286, 1101, 99, 2444, 463, 2251, 235, 1827, 2553, 2346, 593, 675, 939, 1117, 1331, 1279, 749, 1024, 917, 962, 1820, 2428, 1865, 761, 1516, 2610, 540, 1093, 1860, 440, 2465, 1881, 1089, 570, 2115, 1651, 1150, 402, 1205, 221, 1064, 2047, 1624, 751, 743, 29, 2020, 1265, 1480, 469, 1561, 2240, 3, 269, 491, 2153, 2256, 1694, 1958, 1890, 2080, 2189, 1882, 2552, 42, 1250, 2481, 510, 893, 853, 2060, 113, 199, 595, 930, 1363, 189, 2142, 1709, 2333, 2546, 1021, 2176, 2455, 741, 754, 1518, 972, 1311, 1073, 1325, 530, 1852, 1806, 149, 715, 173, 467, 379, 2486, 203, 1294, 1162, 1448, 2458, 86, 518, 1597, 2286, 1440, 488, 283, 567, 362, 2385, 2311, 1260, 1310, 2099, 1792, 1535, 2040, 196, 760, 2524, 2211, 2204, 2128, 2483, 2057, 2014, 2222, 866, 300, 788, 89, 1003, 2357, 2548, 1848, 1750, 415, 2463, 2527, 1955, 1464, 819, 2505, 1741, 2364, 454, 55, 394, 1803, 1202, 694, 2434, 1140, 781, 367, 1632, 1105, 2586, 1658, 1760, 2038, 1070, 170, 712, 1646, 2271, 1703, 2171, 122, 616, 2398, 2360, 2495, 457, 2069, 1214, 2010, 1972, 311, 2464, 1538, 2188, 2574, 2196, 580, 2382, 817, 2450, 1152, 2533, 2001, 307, 2096, 43, 562, 2122, 2053, 2235, 1815, 320, 1934, 2327, 1171, 1756, 644, 1735, 1720, 1298, 1423, 429, 1343, 390, 1751, 977, 1129, 632, 666, 671, 1617, 2215, 547, 234, 2246, 691, 344, 137, 218, 1630, 2149, 2263, 2031, 412, 1606, 2438, 590, 2616, 862, 2325, 1192, 1544, 2165, 1085, 309, 1506, 2373, 2530, 639, 875, 1033, 2023, 2066, 266, 10, 2028, 807, 1969, 2492, 2307, 2551, 1770, 859, 2404, 837, 902, 1030, 1114, 936, 1812, 376, 974, 2358, 578, 497, 2090, 979, 1053, 1594, 2433, 1079, 317, 2589, 536, 404, 840, 84, 2296, 669, 1420, 416, 1523, 7, 206, 479, 923, 1862, 1875, 1444, 623, 1670, 1986, 115, 637, 500, 94, 1240, 2259, 2330, 2595, 773, 104, 2521, 2205, 1776, 1728, 1503, 909, 932, 1548, 802, 855, 1998, 872, 2342, 308, 1180, 2105, 1562, 834, 398, 1767, 1570, 1361, 1416, 1307, 1826, 1603, 1461, 1901, 1497, 991, 1264, 678, 103, 111, 586, 2549, 1208, 1389, 2439, 650, 1533, 1841, 228, 1926, 1757, 146, 723, 576, 176, 1960, 1932, 1081, 553, 1515, 1687, 681, 216, 1421, 2540, 270, 2366, 2413, 2037, 1978, 1871, 2289, 2418, 1642, 1744, 1914, 830, 795, 906, 2501, 1474, 294, 511, 1673, 945, 1395, 1317, 585, 1285, 18, 609, 1036, 653, 369, 1823, 1722, 481, 1782, 1385, 1304, 1838, 782, 338, 1107, 770, 61, 2310, 1609, 1614, 1424, 48, 766, 36, 1149, 1582, 1041, 1679, 1684, 552, 76, 596, 2454, 74, 2193, 11, 2242, 213, 271, 2114, 1913, 783, 143, 1512, 2007, 850, 814, 2410, 291, 2350, 2379, 2093, 2034, 1991, 1948, 79, 1967, 1796, 2562, 2137, 1907, 179, 1791, 920, 1457, 431, 2507, 1753, 382, 1818, 1337, 2415, 2581, 1524, 1120, 737, 1146, 240, 1198, 561, 494, 1040, 1780, 520, 188, 2284, 752, 1282, 707, 451, 1654, 1858, 2475, 246, 1752, 2604, 2180, 2375, 2317, 881, 1220, 2084, 45, 224, 988, 130, 2192, 1541, 2250, 1458, 2174, 2489, 2252, 2063, 915, 1771, 2443, 2004, 476, 2089, 1588, 124, 2336, 2392, 1638, 792, 981, 2471, 843, 1186, 356, 1809, 1392, 729, 2419, 1788, 327, 1183, 1830, 1483, 533, 1650, 102, 684, 1623, 2558, 787, 1194, 558, 640, 2596, 2383, 1693, 2514, 1917, 231, 2046, 2510, 952, 268, 2239, 2625, 1843, 153, 2279, 273, 315, 2315, 2580, 2469, 337, 2388, 1847, 2075, 892, 852, 2102, 359, 2314, 2424, 1463, 2564, 524, 2130, 2225, 32, 869, 1414, 341, 503, 1877, 2081, 1628, 704, 1526, 1718, 929, 418, 1880, 1323, 755, 1851, 487, 1161, 105, 485, 2427, 2072, 1293, 1163, 1020, 724, 1627, 625, 529, 1635, 656, 1043, 1661, 212, 967, 1429, 1572, 1009, 408, 1010, 2265, 1534, 1379, 1492, 888, 1039, 2363, 1772, 2482, 2056, 865, 2013, 1521, 1954, 2356, 566, 821, 1567, 958, 2477, 887, 905, 1975, 1251, 1173, 659, 1558, 2472, 366, 926, 1682, 2468, 393, 2139, 1984, 1371, 613, 347, 542, 1200, 195, 1349, 1288, 1103, 1301, 263, 1836, 169, 1702, 114, 1549, 236, 1593, 163, 1047, 2303, 1453, 951, 1355, 140, 1138, 1437, 2283, 1802, 1581, 2187, 249, 849, 539, 2143, 276, 2111, 899, 2573, 2043, 1509, 13, 19, 1069, 1563, 2120, 1576, 1916, 304, 1029, 2449, 2234, 2214, 1170, 1963, 1734, 1341, 1297, 764, 1408, 1076, 878, 428, 949, 1052, 1099, 450, 73, 670, 343, 546, 1403, 411, 85, 1004, 345, 1157, 63, 2479, 575, 31, 2348, 564, 1245, 160, 1910, 182, 2268, 2270, 982, 396, 136, 2324, 1489, 254, 1447, 2372, 2491, 108, 2027, 1968, 1930, 1134, 1527, 2622, 100, 1886, 2320, 1233, 912, 1225, 2585, 1196, 1942, 753, 375, 935, 2570, 1228, 2231, 1094, 118, 1026, 2345, 1378, 1811, 1883, 858, 1367, 1375, 994, 735, 1044, 425, 387, 1217, 1645, 2226, 444, 1602, 1844, 1620, 1731, 588, 543, 986, 209, 1669, 2052, 1690, 1640, 87, 1077, 2108, 22, 285, 2329, 2618, 1399, 690, 2104, 535, 1938, 2258, 701, 2395, 2295, 2543, 1547, 1460, 871, 2339, 2024, 2019, 2277, 133, 801, 1895, 1981, 1922, 1167, 913, 2145, 1743, 1017, 1618, 833, 25, 1143, 1110, 1320, 1433, 2229, 1740, 2520, 1900, 1850, 1874, 619, 1666, 1637, 2400, 1227, 732, 2498, 699, 2460, 1997, 728, 1, 1648, 82, 2598, 748, 2148, 2309, 35, 998, 622, 2151, 129, 91, 676, 51, 778, 598, 1473, 1612, 2353, 330, 241, 473, 215, 1994, 948, 2517, 40, 509, 944, 484, 1784, 1177, 226, 2117, 973, 1566, 1629, 1176, 1035, 846, 348, 1897, 1066, 1384, 1799, 615, 1822, 1833, 1413, 1857, 1785, 1190, 1207, 2559, 1973, 674, 16, 2132, 2369, 1849, 710, 135, 142, 1678, 1080, 1683, 636, 1419, 1781, 410, 2323, 2518, 1049, 2275, 1763, 2567, 2301, 239, 1111, 2612, 2391, 2508, 261, 2087, 2092, 842, 898, 1564, 2409, 1725, 1128, 2280, 2292, 2253, 2378, 1759, 1829, 2435, 1551, 582, 1486, 381, 2341, 2033, 1335, 340, 328, 1281, 1249, 884, 2556, 1525, 1769, 514, 813, 1381, 1313, 607, 1000, 495, 667, 635, 1187, 2609, 17, 205, 745, 2207, 1964, 1653, 769, 1063, 1048, 2065, 1626, 2407, 156, 1119, 2157, 1675, 1373, 2191, 2335, 1237, 1451, 2062, 277, 44, 2306, 1540, 534, 2557, 810, 1156, 272, 232, 60, 895, 839, 2003, 1185, 987, 2488, 2241, 1059, 1391, 184, 355, 1469, 2219, 1887, 1154, 2467, 493, 1965, 916, 683, 532, 1867, 1329, 421, 1853, 950, 175, 101, 1046, 631, 439, 2304, 557, 385, 275, 1193, 523, 1511, 1758, 642, 0, 2591, 2288, 220, 1699, 2141, 2387, 435, 2313, 1855, 1410, 1906, 1911, 1467, 2264, 2206, 302, 612, 1116, 1479, 324, 868, 2059, 2423, 2332, 2485, 2224, 2480, 2042, 1957, 2035, 941, 88, 2579, 2000, 1962, 2078, 2216, 68, 555, 1019, 1182, 1708, 1164, 1599, 655, 198, 2203, 502, 1131, 1660, 1634, 471, 1425, 1072, 399, 696, 1876, 167, 714, 1482, 777, 2272, 1596, 726, 202, 2576, 1087, 1204, 1439, 1944, 2421, 172, 1953, 349, 2285, 791, 1236, 569, 1974, 1557, 2326, 2384, 57, 2098, 2016, 490, 592, 2615, 364, 1817, 1715, 2126, 191, 2055, 2504, 1032, 1470, 646, 1873, 925, 904, 1347, 1287, 1864, 1055, 372, 1868, 2506, 414, 2497, 1644, 2362, 1835, 373, 434, 2210, 1300, 1388, 496, 693, 549, 1657, 152, 780, 1631, 257, 164, 1705, 139, 453, 1427, 820, 2198, 417, 2536, 2243, 2169, 1303, 2195, 2182, 2588, 53, 1508, 2494, 877, 50, 2030, 2009, 12, 2068, 572, 1082, 1971, 1462, 890, 1407, 2359, 901, 880, 2535, 976, 1125, 1397, 1924, 816, 1098, 2228, 98, 2101, 346, 2420, 1083, 1418, 1276, 2532, 689, 634, 1213, 1755, 70, 389, 158, 2452, 1641, 1241, 181, 718, 117, 563, 208, 1402, 2430, 2144, 1672, 538, 1127, 2261, 1014, 1446, 2267, 2183, 1575, 759, 499, 244, 2513, 911, 303, 1501, 1505, 643, 1903, 805, 1605, 1783, 2569, 857, 722, 2462, 1893, 836, 527, 2230, 2048, 1211, 2217, 1374, 54, 424, 361, 1309, 790, 1442, 661, 1113, 1166, 1394, 1090, 587, 680, 826, 1259, 1730, 2619, 1078, 72, 1584, 185, 954, 319, 288, 1209, 148, 1278, 784, 21, 132, 2560, 1737, 242, 2247, 1494, 2399, 775, 2542, 2476, 258, 2018, 2039, 81, 2597, 1476, 229, 829, 579, 2276, 2071, 984, 38, 1568, 178, 861, 432, 1142, 1814, 41, 1717, 931, 1319, 1405, 908, 462, 1038, 1179, 1724, 618, 648, 1277, 1517, 2184, 1365, 1840, 1825, 1577, 190, 127, 34, 460, 2298, 386, 1611, 1616, 406, 2199, 1206, 145, 1459, 1681, 456, 5, 1912, 2147, 2456, 227, 378, 2352, 1921, 1919, 2116, 2473, 2274, 342, 2503, 1896, 1456, 2594, 591, 2381, 2500, 1514, 2095, 845, 1034, 874, 1870, 1993, 1359, 1798, 794, 1977, 1412, 2417, 1436, 1013, 433, 922, 1554, 960, 1749, 673, 1284, 1316, 1239, 739, 1686, 2212, 316, 78, 2107, 2621, 326, 395, 608, 26, 253, 1306, 293, 187, 123, 2300, 1122, 1613, 1655, 498, 1608, 2611, 526, 2377, 709, 2086, 2091, 2539, 2445, 1485, 2453, 2408, 274, 237, 247, 2529, 2338, 2113, 2006, 1947, 2470, 731, 2179, 380, 1980, 963, 768, 2328, 1219, 940, 1589, 2349, 222, 483, 1790, 919, 336, 1380, 1312, 436, 1778, 1430, 627, 2074, 999, 2516, 772, 2606, 384, 8, 1888, 475, 736, 2291, 1793, 793, 1148, 686, 155, 1695, 465, 1891, 329, 2237, 1450, 757, 1863, 621, 2344, 282, 1443, 2394, 1987, 1700, 2608, 2374, 1707, 2316, 583, 894, 809, 2412, 358, 1854, 854, 2442, 1696, 2603, 2173, 2538, 969, 1086, 2083, 1060, 2227, 97, 377, 2512, 1022, 1327, 1713, 914, 1465, 1295, 420, 2509, 1057, 1587, 437, 2297, 1153, 1846, 1879, 928, 568, 1859, 2555, 970, 1663, 1990, 2045, 658, 1045, 279, 2036, 2440, 219, 2561, 2547, 1692, 301, 56, 2245, 1622, 1775, 1837, 2266, 2365, 1455, 59, 867, 2058, 2015, 664, 1956, 287, 750, 371, 513, 211, 624, 1935, 1573, 2600, 522, 489, 314, 966, 2077, 1141, 1008, 368, 1387, 663, 1023, 1203, 647, 961, 2, 1181, 1058, 851, 1988, 2163, 2484, 1292, 706, 713, 165, 1016, 171, 2522, 560, 1909, 1254, 1353, 1647, 649, 350, 106, 1595, 194, 1945, 1062, 251, 1519, 717, 628, 2451, 2554, 2525, 883, 1438, 1804, 2054, 1491, 1766, 296, 2426, 15, 528, 2124, 1808, 626, 848, 1488, 864, 1172, 1931, 1115, 2248, 1736, 1721, 1286, 6, 1299, 430, 223, 2097, 1054, 1136, 1031, 1477, 2220, 519, 990, 1466, 1068, 201, 692, 413, 197, 1939, 2461, 1656, 1918, 1773, 28, 779, 96, 334, 162, 120, 2447, 95, 703, 2167, 1580, 69, 2405, 1452, 968, 1532, 2067, 2008, 2282, 2029, 508, 2194, 2186, 1592, 2493, 2178, 2249, 2322, 2624, 2587, 1569, 2051, 2177, 975, 1813, 360, 2563, 900, 1889, 318, 1531, 1774, 290, 1028, 1160, 651, 860, 1339, 1733, 1377, 1275, 2110, 427, 1169, 1970, 1529, 1242, 388, 168, 725, 574, 65, 1590, 1296, 1051, 1928, 758, 1604, 1671, 889, 255, 2260, 1649, 2236, 1583, 2568, 265, 2233, 2106, 112, 786, 62, 2161, 1915, 744, 1096, 803, 2340, 2181, 537, 1904, 835, 2064, 1106, 873, 2213, 1504, 2371, 2278, 2620, 2584, 1345, 1761, 138, 2134, 1145, 1983, 934, 2088, 679, 2572, 1238, 734, 996, 332, 1745, 1415, 401, 1810, 1432, 789, 1199, 1711, 2511, 1495, 1701, 1257, 177, 1493, 993, 1601, 2446, 506, 131, 37, 64, 2531, 2294, 2406, 606, 1689, 1668, 2257, 217, 2022, 1475, 1619, 2355, 1892, 2490, 771, 2119, 1765, 1322, 1927, 1937, 1872, 1586, 946, 2459, 799, 1996, 2343, 310, 1037, 832, 1824, 299, 886, 1925, 2429, 2269, 1305, 1386, 2474, 1400, 721, 1262, 1123, 1191, 985, 459, 1801, 2575, 1739, 1546, 938, 989, 144, 1680, 1727, 1665, 1636, 1768, 605, 1742, 458, 597, 1685, 392, 1748, 1178, 742, 24, 2273, 292, 77, 2411, 815, 2380, 2593, 1839, 278, 2094, 2255, 882, 2305, 248, 323, 121, 1869, 2499, 2617, 2614, 1861, 298, 1553, 374, 1012, 2073, 383, 2416, 325, 1283, 1831, 452, 677, 747, 525, 1175, 1821, 1941, 1147, 1315, 1383, 1302, 2437, 1189, 486, 2403, 1499, 1218, 630, 448, 1899, 584, 1158, 1607, 720, 551, 2026, 93, 1819, 1677, 516, 141, 260, 1698, 186, 599, 2308, 2528, 1472, 907, 107, 1121, 1946, 2112, 614, 2005, 1510, 2545, 1940, 2393, 1109, 1468, 897, 841, 2368, 312, 956, 719, 280, 1061, 1393, 765, 2577, 2347, 1828, 1794, 357, 1866, 1155, 957, 1118, 1333, 339, 2519, 559, 662, 1513, 705, 1550, 828, 1280, 918, 284, 1025, 1088, 756, 1976, 1777, 997, 1124, 154, 1195, 1795, 1625, 571, 245, 2566, 2607, 947, 1422, 27, 1075, 937, 1002, 1989, 1652, 264, 2155, 594, 46, 1571, 2334, 1417, 870, 1481, 2082, 2061, 2190, 1539, 2441, 774, 2390, 1719, 1712, 1959, 762, 407, 657, 2002, 1126, 1933, 1091, 1807, 1074, 2487, 353, 419, 474, 1908, 1845, 75, 1662, 531, 200, 682, 1621, 685, 589], _phantom: core::marker::PhantomData, }; pub(super) static NAME_TO_IDX: PhfMap<[u8], u16> = PhfMap { key: 12913932095322966823, - disps: &[(0, 6), (0, 0), (0, 1), (0, 32), (0, 125), (0, 0), (0, 46), (0, 23), (0, 29), (0, 10), (0, 3), (0, 136), (0, 36), (0, 5), (0, 4), (0, 5), (0, 5), (0, 11), (0, 0), (0, 3), (0, 4), (0, 1), (0, 6), (0, 3), (0, 17), (0, 2), (0, 0), (0, 5), (0, 37), (0, 2), (0, 0), (0, 1), (0, 0), (0, 4), (0, 0), (0, 86), (0, 6), (0, 2), (0, 26), (0, 32), (0, 1), (0, 4), (0, 2), (0, 0), (0, 7), (0, 2), (0, 12), (0, 0), (0, 23), (0, 22), (0, 0), (0, 0), (0, 9), (0, 25), (0, 19), (0, 14), (0, 0), (0, 0), (0, 12), (0, 66), (0, 0), (0, 13), (0, 12), (0, 83), (0, 2), (0, 13), (0, 6), (0, 12), (0, 0), (0, 2), (0, 0), (0, 0), (0, 23), (0, 2), (0, 22), (1, 2), (0, 5), (0, 0), (0, 5), (0, 0), (0, 0), (0, 4), (0, 0), (0, 3), (0, 10), (0, 2), (0, 1), (0, 0), (0, 0), (0, 8), (0, 6), (0, 59), (0, 0), (0, 1), (0, 24), (0, 7), (0, 25), (0, 83), (0, 1), (0, 1), (0, 26), (0, 10), (0, 13), (0, 42), (0, 3), (0, 3), (0, 50), (0, 8), (0, 0), (0, 4), (0, 0), (0, 6), (0, 53), (0, 0), (0, 0), (0, 36), (0, 7), (0, 29), (0, 7), (0, 1), (0, 6), (0, 3), (0, 11), (0, 9), (0, 9), (0, 0), (0, 7), (0, 182), (0, 42), (0, 0), (0, 24), (0, 2), (0, 21), (0, 3), (0, 0), (0, 4), (0, 1), (0, 2), (0, 21), (0, 26), (0, 9), (0, 2), (0, 0), (0, 0), (0, 26), (0, 16), (0, 7), (0, 9), (0, 9), (0, 22), (0, 1), (0, 4), (0, 2), (0, 139), (0, 286), (0, 29), (0, 19), (0, 1), (0, 0), (0, 1), (0, 0), (0, 0), (0, 22), (0, 0), (0, 2), (0, 192), (0, 4), (0, 0), (0, 19), (0, 0), (0, 54), (0, 17), (0, 101), (0, 17), (0, 21), (0, 7), (0, 32), (0, 15), (0, 5), (0, 2), (0, 2), (0, 5), (0, 33), (0, 58), (0, 0), (0, 10), (0, 1), (0, 57), (0, 22), (0, 64), (0, 4), (0, 1), (0, 19), (0, 6), (0, 42), (0, 0), (0, 5), (0, 0), (0, 0), (0, 18), (0, 30), (0, 410), (0, 0), (0, 33), (0, 12), (0, 2), (0, 3), (0, 1), (0, 0), (0, 0), (0, 1), (0, 8), (0, 1), (0, 141), (0, 3), (0, 35), (0, 0), (0, 2), (0, 26), (0, 0), (0, 7), (0, 1), (0, 6), (0, 8), (0, 0), (0, 11), (0, 7), (0, 337), (0, 3), (0, 2), (0, 9), (0, 21), (0, 23), (0, 0), (0, 7), (0, 22), (0, 0), (0, 0), (0, 14), (0, 4), (0, 104), (0, 1), (0, 68), (0, 1), (0, 0), (0, 0), (0, 277), (0, 22), (0, 115), (0, 51), (0, 0), (0, 2), (0, 6), (0, 5), (0, 197), (0, 0), (0, 7), (0, 11), (0, 2), (0, 1), (0, 0), (0, 2), (0, 1), (0, 2), (0, 800), (0, 2), (0, 4), (0, 77), (0, 17), (0, 5), (0, 5), (0, 4), (0, 28), (0, 3), (0, 6), (0, 1), (0, 13), (0, 7), (0, 11), (0, 18), (0, 0), (0, 27), (0, 481), (0, 18), (0, 6), (0, 1), (0, 12), (0, 0), (0, 7), (0, 20), (0, 1), (0, 2), (0, 3), (0, 54), (0, 0), (0, 1), (0, 2), (0, 140), (0, 10), (0, 13), (0, 5), (0, 13), (0, 5), (0, 92), (0, 16), (0, 730), (0, 10), (0, 6), (0, 4), (0, 79), (0, 2), (0, 11), (0, 0), (0, 5), (0, 11), (0, 0), (0, 1), (0, 8), (0, 2), (0, 756), (0, 0), (0, 0), (0, 10), (0, 3), (0, 6), (0, 52), (0, 13), (0, 54), (0, 2), (0, 0), (0, 1), (0, 10), (0, 0), (0, 33), (0, 14), (0, 33), (0, 3), (0, 7), (0, 19), (0, 5), (0, 0), (0, 7), (0, 0), (0, 433), (0, 8), (0, 0), (0, 0), (0, 37), (0, 4), (0, 7), (0, 43), (0, 0), (0, 1), (0, 5), (0, 99), (0, 126), (0, 2), (0, 14), (0, 51), (0, 0), (0, 196), (0, 7), (0, 1), (0, 20), (0, 0), (0, 1), (0, 0), (0, 4), (0, 0), (0, 0), (0, 0), (0, 830), (0, 3), (0, 5), (0, 4), (0, 21), (0, 643), (0, 3), (0, 0), (0, 76), (0, 73), (0, 12), (0, 0), (0, 59), (0, 1), (0, 17), (0, 3), (0, 78), (0, 9), (0, 98), (0, 3), (0, 10), (0, 4), (0, 52), (0, 0), (0, 5), (0, 203), (0, 0), (0, 8), (0, 32), (0, 76), (0, 75), (0, 0), (0, 9), (0, 24), (0, 35), (0, 15), (0, 0), (0, 81), (0, 26), (0, 3), (0, 3), (0, 12), (0, 16), (0, 2), (0, 907), (0, 2), (0, 67), (0, 20), (0, 684), (0, 1), (0, 8), (0, 7), (0, 142), (0, 0), (0, 118), (0, 50), (0, 0), (0, 0), (0, 1), (0, 6), (0, 0), (0, 15), (0, 3), (0, 1), (0, 29), (0, 1), (0, 4), (0, 6), (0, 116), (0, 17), (0, 207), (0, 6), (0, 1), (0, 24), (0, 2), (0, 1), (0, 7), (0, 0), (0, 8), (0, 0), (0, 5), (0, 57), (0, 2), (0, 6), (0, 49), (0, 2), (0, 82), (0, 1), (0, 3), (0, 4), (0, 8), (0, 7), (0, 59), (0, 5), (0, 5), (0, 19), (0, 2), (0, 1), (0, 269), (0, 0), (0, 0), (0, 82), (0, 12), (0, 3), (0, 15), (0, 547), (0, 57), (0, 43), (0, 0), (0, 0), (0, 22), (0, 22), (0, 357), (0, 2), (0, 15), (0, 0), (0, 0), (0, 7), (0, 1), (0, 15), (0, 0), (0, 77), (0, 0), (0, 11), (0, 0), (0, 15), (0, 0), (0, 71), (0, 47), (0, 17), (0, 0), (0, 6), (0, 5), (0, 1), (0, 13), (0, 4), (0, 0), (0, 10), (0, 2), (0, 46), (0, 124), (0, 18), (0, 952), (0, 24), (0, 0), (0, 0), (0, 12), (0, 74), (0, 4), (0, 10), (0, 100), (0, 7), (0, 0), (0, 3), (0, 6), (0, 22), (0, 27), (0, 26), (0, 27), (0, 3), (0, 326), (0, 3), (0, 8), (0, 16), (0, 51), (0, 1), (0, 16), (0, 33), (0, 34), (0, 5), (0, 7), (0, 0), (0, 1), (0, 0), (0, 9), (0, 0), (0, 9), (0, 10), (0, 67), (0, 0), (0, 45), (0, 15), (0, 0), (0, 5), (0, 4), (0, 53), (0, 0), (0, 3), (0, 0), (0, 7), (0, 41), (0, 0), (0, 0), (0, 72), (0, 224), (0, 204), (0, 38), (0, 1064), (0, 29), (0, 18), (0, 0), (0, 331), (0, 0), (0, 617), (0, 0), (0, 5), (0, 33), (0, 7), (0, 54), (0, 13), (0, 13), (0, 1), (0, 0), (0, 14), (0, 156), (0, 19), (0, 2), (0, 53), (0, 7), (0, 781), (0, 0), (0, 1), (0, 123), (0, 0), (0, 767), (0, 4), (0, 0), (0, 0), (0, 0), (0, 0), (0, 16), (0, 118), (0, 866), (0, 0), (0, 554), (0, 0), (0, 59), (0, 125), (0, 16), (0, 89), (0, 42), (0, 283), (0, 2), (0, 80), (0, 19), (0, 50), (0, 76), (0, 0), (0, 12), (0, 23), (0, 0), (0, 281), (0, 539), (0, 0), (0, 3), (0, 0), (0, 1), (0, 0), (0, 413), (0, 13), (0, 3), (0, 0), (0, 3), (0, 310), (0, 37), (0, 2), (0, 0), (0, 75), (0, 66), (0, 34), (0, 0), (0, 14), (0, 241), (0, 0), (0, 25), (0, 32), (0, 9), (0, 3), (0, 10), (0, 127), (0, 0), (0, 98), (0, 0), (0, 12), (0, 74), (0, 0), (0, 10), (0, 4), (0, 31), (0, 8), (0, 562), (0, 12), (0, 646), (0, 0), (0, 17), (0, 0), (0, 29), (0, 5), (0, 0), (0, 12), (0, 136), (0, 1110), (0, 3), (0, 124), (0, 543), (0, 45), (0, 0), (0, 0), (0, 31), (0, 1), (0, 5), (0, 3), (0, 168), (0, 15), (0, 11), (0, 29), (0, 9), (0, 6), (0, 10), (0, 50), (0, 3), (0, 1), (0, 0), (0, 28), (0, 8), (0, 0), (0, 2), (0, 145), (0, 0), (0, 13), (0, 9), (0, 0), (0, 66), (0, 52), (0, 3), (0, 11), (0, 16), (0, 132), (0, 0), (0, 67), (0, 0), (0, 23), (0, 24), (0, 0), (0, 19), (0, 6), (0, 20), (0, 0), (0, 14), (0, 16), (0, 98), (0, 6), (0, 7), (0, 50), (0, 9), (0, 0), (0, 7), (0, 10), (0, 15), (0, 586), (0, 305), (0, 33), (0, 12), (0, 3), (0, 10), (0, 21), (0, 5), (0, 250), (0, 0), (0, 25), (0, 55), (0, 5), (0, 32), (0, 43), (0, 47), (0, 7), (0, 44), (0, 13), (0, 0), (0, 11), (0, 641), (0, 19), (0, 59), (0, 360), (0, 1), (0, 3), (0, 19), (0, 4), (0, 226), (0, 824), (0, 9), (0, 86), (0, 1), (0, 6), (0, 0), (0, 321), (0, 4), (0, 1), (0, 6), (0, 99), (0, 13), (0, 95), (0, 38), (0, 492), (0, 1), (0, 0), (0, 10), (0, 8), (0, 800), (0, 238), (0, 0), (0, 77), (0, 17), (0, 34), (0, 78), (0, 91), (0, 343), (0, 1319), (0, 39), (0, 31), (0, 74), (0, 0), (0, 2), (0, 1), (0, 11), (0, 0), (0, 0), (0, 3), (0, 2), (0, 2), (0, 11), (0, 8), (0, 1), (0, 884), (0, 27), (0, 1004), (0, 52), (0, 70), (0, 98), (0, 120), (0, 1956), (0, 0), (0, 9), (0, 184), (0, 35), (0, 3), (0, 41), (0, 0), (0, 36), (0, 11), (0, 10), (0, 0), (0, 1378), (0, 0), (0, 0), (0, 13), (0, 62), (0, 0), (0, 82), (0, 10), (0, 21), (0, 3), (0, 0), (0, 1), (0, 10), (0, 49), (0, 2013), (0, 6), (0, 1971), (0, 37), (0, 3), (0, 360), (0, 27), (0, 51), (0, 66), (0, 1010), (0, 1190), (0, 72), (0, 13), (0, 102), (0, 37), (0, 4), (0, 0), (0, 1272), (0, 2), (0, 25), (0, 8), (0, 4), (0, 334), (0, 6), (0, 6), (0, 4), (0, 45), (0, 100), (0, 0), (0, 0), (0, 16), (0, 28), (0, 9), (0, 34), (0, 1), (0, 12), (0, 4), (0, 0), (0, 0), (0, 3), (0, 64), (0, 1), (0, 91), (0, 523), (0, 14), (0, 25), (0, 0), (0, 111), (0, 22), (0, 19), (0, 218), (0, 2), (0, 10), (0, 0), (0, 300), (0, 1), (0, 408), (0, 57), (0, 9), (0, 438), (0, 102), (0, 572), (0, 55), (0, 0), (0, 19), (0, 1), (0, 105), (0, 411), (0, 0), (0, 1504), (0, 7), (0, 0), (0, 34), (0, 86), (0, 0), (0, 116), (0, 245), (0, 202), (0, 26), (0, 13), (0, 291), (0, 8), (0, 0), (0, 0), (0, 1633), (0, 100), (0, 109), (0, 8), (0, 26), (0, 45), (0, 0), (0, 1669), (0, 0), (0, 1698), (0, 11), (0, 40), (0, 0), (0, 4), (0, 0), (0, 93), (0, 717), (0, 83), (0, 0), (0, 10), (0, 2), (0, 157), (0, 11), (0, 959), (0, 270), (0, 30), (0, 81), (0, 0), (0, 0), (0, 1), (0, 23), (0, 1534), (0, 1), (0, 75), (0, 105), (0, 78), (0, 17), (0, 52), (0, 0), (0, 0), (0, 0), (0, 0), (0, 326), (0, 2003), (0, 11), (0, 1), (0, 2090), (0, 26), (0, 2), (0, 1210), (0, 155), (0, 8), (0, 97), (0, 16), (0, 0), (0, 36), (0, 145), (0, 1), (0, 12), (0, 21), (0, 1895), (0, 26), (0, 311), (0, 10), (0, 2), (0, 1322), (0, 0), (0, 0), (0, 18), (0, 33), (0, 818), (0, 1674), (0, 1546), (0, 1765), (0, 802), (0, 19), (0, 697), (0, 13), (0, 2444), (0, 19), (0, 8), (0, 1), (0, 2113), (0, 348), (0, 47), (0, 22), (0, 28), (0, 2412), (0, 0), (0, 842), (0, 10), (0, 21), (0, 244), (0, 4), (0, 0), (0, 4), (0, 199), (0, 1), (0, 49), (0, 897), (0, 1), (0, 52), (0, 2470)], - map: &[1380, 689, 1698, 2190, 117, 2153, 317, 1317, 300, 982, 1421, 2334, 524, 922, 1807, 1831, 1356, 878, 115, 1735, 2067, 1042, 392, 931, 709, 862, 1602, 1278, 2044, 2126, 541, 223, 1684, 2200, 2140, 1621, 2376, 1426, 325, 1105, 2077, 1868, 471, 957, 555, 2452, 1764, 2154, 419, 2051, 770, 767, 2436, 824, 16, 1295, 2559, 1299, 151, 2010, 759, 1609, 1032, 785, 1897, 807, 653, 1527, 1516, 535, 1600, 314, 2277, 2347, 1058, 1548, 2193, 2207, 1964, 836, 1806, 948, 2238, 2318, 1416, 2245, 1419, 793, 1641, 1858, 504, 2390, 2135, 2062, 1856, 361, 1087, 483, 1959, 1162, 1963, 494, 1547, 1795, 2574, 1751, 917, 1685, 1767, 1968, 313, 2480, 236, 679, 275, 1398, 1360, 2375, 114, 158, 1876, 2302, 1090, 50, 458, 923, 1484, 1044, 1251, 1096, 680, 288, 2199, 2505, 1033, 190, 73, 385, 2572, 2081, 1871, 2414, 285, 521, 758, 349, 1889, 1825, 90, 976, 1645, 1240, 1028, 163, 1474, 657, 1379, 91, 1722, 1287, 749, 586, 544, 791, 845, 489, 391, 937, 2430, 1553, 2122, 635, 2171, 1603, 242, 1051, 1425, 594, 1510, 1045, 412, 1138, 33, 734, 695, 566, 1728, 1714, 424, 1582, 1818, 1060, 859, 1756, 1927, 705, 1396, 321, 2031, 1647, 1387, 1596, 2198, 1358, 1999, 853, 569, 374, 1310, 2402, 79, 2251, 201, 1531, 1435, 112, 1932, 1165, 2421, 1447, 2073, 111, 2158, 283, 1560, 2450, 1605, 2112, 817, 805, 2362, 894, 1452, 2178, 1237, 473, 603, 1599, 913, 606, 1581, 1853, 986, 1981, 1224, 1417, 2231, 1774, 1196, 1740, 1133, 2218, 921, 751, 2458, 797, 1337, 1212, 340, 1554, 1318, 1969, 443, 2217, 1593, 618, 1877, 1873, 585, 1126, 1022, 1788, 995, 78, 425, 2179, 1664, 1724, 2183, 1769, 672, 1987, 70, 1455, 48, 47, 537, 1524, 1830, 936, 939, 1006, 1916, 1890, 2115, 1762, 1561, 495, 203, 1100, 1707, 2531, 1567, 411, 1186, 2108, 1796, 1750, 801, 2196, 2570, 615, 1065, 2437, 2011, 2314, 1312, 669, 974, 1738, 932, 415, 2361, 1668, 386, 625, 738, 1475, 1975, 2393, 2050, 1450, 2295, 2498, 1665, 755, 1624, 1859, 479, 1656, 1994, 1409, 100, 1783, 1904, 1448, 1149, 1289, 713, 2385, 2057, 1313, 1098, 466, 2476, 154, 1709, 461, 2254, 1666, 474, 588, 1339, 213, 852, 2043, 62, 1942, 652, 737, 760, 2300, 901, 1158, 7, 2399, 108, 834, 1267, 431, 1228, 627, 1494, 783, 1082, 289, 552, 1414, 2289, 1181, 2380, 2188, 2033, 1307, 647, 2237, 384, 775, 835, 1791, 1523, 2131, 1996, 2264, 725, 540, 2311, 1885, 1482, 194, 1433, 229, 2556, 156, 2428, 706, 1654, 2552, 2288, 2003, 2425, 2394, 511, 30, 568, 295, 2337, 432, 1988, 575, 629, 2547, 2168, 1860, 1438, 1027, 955, 998, 93, 733, 250, 1454, 1038, 2555, 701, 2474, 1838, 1099, 1097, 1183, 1829, 929, 270, 2099, 418, 1912, 1110, 584, 557, 2389, 512, 5, 1019, 1778, 421, 1653, 328, 1466, 1676, 2379, 2164, 2398, 2313, 216, 208, 1306, 1777, 245, 682, 1972, 967, 23, 1357, 1197, 1062, 191, 179, 430, 2525, 1263, 1914, 1586, 1836, 406, 2113, 249, 1504, 2219, 1031, 1743, 2406, 2106, 1636, 1362, 1849, 562, 1949, 958, 1549, 134, 560, 148, 754, 890, 2369, 1976, 1844, 1960, 2457, 2540, 2090, 279, 75, 394, 761, 312, 1911, 1329, 2353, 1269, 2097, 1469, 2143, 2009, 332, 2002, 44, 960, 456, 2304, 2152, 2325, 2060, 417, 1408, 1920, 2241, 804, 1674, 102, 2339, 122, 282, 1210, 2448, 741, 1982, 762, 1687, 322, 1281, 1993, 2293, 794, 2268, 950, 1459, 1057, 2282, 882, 1622, 1276, 2243, 476, 2046, 973, 505, 402, 1064, 1054, 22, 1585, 1563, 2170, 1010, 1423, 357, 2438, 1934, 189, 813, 1848, 2160, 2358, 970, 1519, 43, 1879, 2461, 2269, 1453, 610, 343, 1997, 2554, 1258, 1340, 655, 798, 1252, 1892, 742, 1314, 1979, 1943, 1926, 1924, 2370, 2535, 2155, 1418, 1888, 1977, 273, 434, 857, 677, 395, 1588, 811, 167, 1073, 551, 1404, 2201, 67, 1053, 1571, 1128, 423, 802, 1985, 2214, 339, 63, 1690, 1259, 538, 372, 534, 1193, 1550, 2181, 773, 1243, 756, 693, 1288, 2159, 2564, 1640, 2249, 1509, 1280, 887, 1495, 727, 1686, 1412, 1213, 2247, 2546, 2005, 1710, 1198, 407, 59, 2066, 1794, 765, 902, 175, 2357, 305, 1618, 1174, 1810, 961, 1616, 173, 880, 2431, 2078, 246, 1921, 987, 41, 1338, 1958, 1772, 1874, 988, 2519, 1787, 64, 2345, 1808, 1004, 335, 2134, 467, 1541, 125, 582, 1658, 72, 1199, 426, 1771, 1850, 2395, 2173, 1035, 522, 1782, 1043, 169, 1293, 2239, 136, 1857, 1303, 906, 2429, 871, 1218, 1863, 731, 1189, 455, 1891, 210, 2085, 2212, 1569, 792, 2120, 261, 2176, 445, 1801, 590, 2419, 2499, 1478, 1759, 559, 924, 1217, 1001, 2139, 2441, 2194, 2192, 1066, 58, 1695, 1119, 1368, 1995, 2045, 1383, 1953, 735, 198, 2578, 40, 1009, 2228, 1335, 2470, 1163, 1173, 2539, 482, 2422, 131, 591, 1334, 2091, 448, 1344, 2086, 546, 2301, 1428, 576, 1974, 678, 1712, 71, 2103, 110, 447, 1592, 661, 2319, 363, 787, 898, 263, 2515, 744, 19, 17, 2558, 684, 260, 614, 369, 2287, 2382, 2261, 564, 2260, 2326, 310, 660, 2521, 401, 463, 1480, 1302, 2213, 2147, 821, 1878, 718, 359, 1503, 164, 2210, 1135, 771, 867, 252, 815, 1490, 1723, 2365, 710, 944, 1781, 2123, 2272, 1907, 2076, 107, 1036, 1471, 776, 2494, 1500, 643, 1737, 1617, 577, 147, 1108, 2047, 1171, 2451, 2132, 2224, 1574, 1002, 1786, 648, 2110, 1589, 1407, 1573, 2221, 532, 1300, 1486, 1121, 452, 1908, 2121, 1112, 777, 1502, 2150, 1930, 56, 2054, 981, 1395, 293, 1627, 1631, 964, 918, 698, 1067, 1608, 1704, 1980, 307, 1145, 2166, 2563, 1720, 1411, 881, 1773, 1883, 2255, 18, 106, 2053, 356, 730, 667, 2038, 2256, 2381, 1517, 1322, 1007, 1846, 347, 290, 633, 909, 9, 1971, 508, 205, 1634, 1779, 1565, 2341, 341, 1528, 2307, 2292, 1301, 1247, 1420, 1139, 2273, 152, 69, 2006, 711, 2000, 583, 530, 2508, 846, 1748, 1242, 422, 617, 2184, 1663, 193, 55, 1261, 688, 2080, 404, 2533, 11, 869, 2483, 1644, 1689, 1696, 65, 1246, 702, 2063, 1029, 2012, 2042, 1146, 2331, 865, 1008, 2149, 225, 819, 899, 1598, 1234, 1657, 2252, 1399, 299, 2248, 1798, 599, 12, 883, 963, 558, 1114, 2463, 1612, 257, 1164, 1543, 429, 2366, 515, 525, 1025, 1131, 2409, 1579, 1719, 2305, 1613, 1832, 1991, 37, 1208, 1819, 410, 331, 1205, 2433, 1294, 2316, 1373, 1328, 286, 519, 1539, 1088, 1018, 1367, 2128, 68, 1753, 943, 2118, 309, 2279, 269, 1706, 1048, 997, 1715, 2061, 1245, 1071, 1725, 1046, 97, 1746, 634, 1230, 1691, 253, 126, 240, 2487, 377, 366, 1346, 439, 1840, 1150, 2157, 823, 1918, 1978, 2087, 1488, 350, 1222, 971, 1646, 1843, 2439, 1182, 542, 1113, 1442, 1718, 383, 469, 1833, 2536, 1341, 2035, 2290, 1785, 1037, 561, 2506, 370, 954, 581, 1055, 1292, 1828, 462, 133, 1012, 318, 1211, 337, 1298, 298, 1730, 375, 2163, 1194, 608, 840, 188, 2317, 334, 1327, 1326, 2332, 1431, 2064, 2549, 1352, 2071, 786, 2440, 84, 644, 2354, 449, 607, 934, 1446, 2522, 2573, 1256, 1343, 2180, 889, 371, 397, 183, 646, 1754, 1225, 215, 2280, 616, 877, 2055, 1845, 320, 1179, 231, 1185, 897, 10, 753, 1673, 1639, 1381, 1880, 2355, 499, 1091, 393, 1951, 1941, 513, 2145, 2460, 1637, 1229, 2541, 752, 748, 2454, 1998, 52, 2093, 1522, 358, 1137, 2455, 206, 2565, 2392, 1648, 1870, 1784, 686, 2329, 1661, 2019, 1458, 659, 941, 1017, 2125, 247, 217, 87, 488, 2543, 1235, 353, 1966, 165, 2471, 13, 1498, 8, 1449, 83, 715, 381, 2482, 1792, 1241, 1151, 670, 526, 2444, 2109, 1168, 1370, 707, 645, 171, 1864, 1817, 192, 2340, 1770, 1601, 1219, 2230, 2072, 2524, 2142, 2557, 861, 135, 1255, 975, 187, 2566, 1178, 668, 1148, 199, 1937, 531, 2016, 602, 2561, 781, 757, 256, 1231, 2512, 2141, 405, 1584, 1167, 1264, 1254, 487, 567, 255, 1434, 860, 747, 2475, 51, 2286, 1405, 1681, 1520, 796, 1595, 1557, 311, 553, 2371, 1555, 935, 968, 220, 2205, 287, 1125, 1697, 81, 2294, 1542, 1717, 893, 2262, 162, 2298, 527, 1120, 708, 185, 1393, 979, 545, 996, 611, 1026, 1152, 1437, 1501, 296, 784, 15, 2411, 724, 2174, 1699, 1201, 2242, 150, 1015, 930, 2342, 1670, 1884, 1047, 2417, 1277, 1415, 1283, 2216, 1755, 2235, 2492, 354, 2133, 1351, 1745, 712, 722, 1583, 1385, 827, 2161, 119, 2146, 1905, 36, 2083, 323, 149, 1702, 933, 2372, 49, 186, 1386, 2130, 726, 510, 32, 2206, 2021, 719, 1556, 1804, 1626, 1532, 912, 1132, 2479, 2182, 2320, 1003, 1354, 2346, 573, 2040, 1092, 336, 1566, 1311, 1101, 2030, 2026, 1316, 232, 464, 543, 2446, 2208, 351, 80, 782, 2576, 1014, 2501, 632, 714, 1083, 2328, 1677, 572, 1529, 2223, 1272, 1061, 2432, 228, 2403, 778, 1820, 2299, 831, 1922, 1881, 2265, 2571, 281, 1638, 1457, 1282, 388, 266, 1862, 1085, 2548, 1297, 2514, 1349, 141, 1533, 1650, 6, 739, 1842, 1013, 2020, 481, 182, 2445, 875, 1463, 486, 528, 956, 1451, 212, 330, 959, 1967, 130, 1319, 1915, 601, 1202, 1397, 1184, 2114, 1758, 1079, 947, 1444, 812, 1059, 2204, 911, 218, 453, 2529, 1041, 828, 826, 1081, 239, 2303, 368, 34, 1628, 2544, 1607, 628, 1947, 27, 254, 926, 649, 908, 1623, 1511, 478, 209, 2352, 484, 503, 1485, 96, 1470, 1961, 2401, 387, 2094, 1030, 355, 306, 501, 2018, 972, 360, 2462, 1309, 612, 2058, 2374, 855, 1660, 1559, 362, 438, 234, 1049, 951, 2324, 2167, 1144, 214, 2322, 2263, 1244, 1562, 1776, 1024, 1564, 2488, 2464, 1865, 1483, 441, 516, 4, 2226, 139, 992, 2037, 620, 1005, 1187, 485, 437, 1382, 656, 460, 2343, 153, 1102, 1506, 654, 1576, 2478, 1473, 1239, 1422, 1948, 1270, 2373, 1900, 2008, 928, 2387, 1089, 248, 2336, 2400, 1157, 26, 1680, 1682, 25, 517, 2082, 1545, 830, 496, 856, 533, 700, 2443, 86, 2315, 1160, 1752, 301, 1262, 2511, 1872, 829, 2284, 2308, 1308, 2275, 1467, 2367, 690, 2449, 938, 2102, 2291, 772, 1713, 46, 2065, 277, 399, 1021, 949, 790, 2266, 2283, 303, 237, 763, 1551, 196, 1693, 1659, 687, 1221, 1572, 138, 174, 1765, 2386, 77, 1620, 1265, 2034, 346, 146, 1291, 1606, 716, 595, 1190, 1489, 2338, 1711, 554, 454, 1903, 2344, 1389, 2500, 1406, 1944, 2568, 641, 600, 2485, 1734, 176, 808, 723, 195, 1118, 1116, 2467, 1040, 1236, 2151, 2388, 243, 1775, 1615, 1122, 2025, 671, 879, 1359, 408, 352, 1861, 2165, 1946, 66, 651, 211, 1439, 1800, 940, 1906, 2119, 2502, 1127, 574, 2416, 872, 1739, 1629, 1020, 662, 2267, 1530, 145, 1936, 1901, 2348, 2368, 681, 663, 1814, 230, 2427, 1521, 180, 2075, 1552, 2335, 1736, 170, 278, 142, 2330, 1910, 1095, 76, 1839, 1667, 1952, 2111, 2477, 1039, 113, 825, 2560, 2504, 1672, 1388, 697, 1805, 1742, 1935, 376, 45, 2059, 2569, 155, 1761, 304, 1938, 994, 227, 2169, 1200, 945, 1076, 398, 166, 2497, 605, 847, 1192, 665, 241, 2095, 2197, 1468, 692, 2296, 626, 1464, 1731, 1093, 1597, 276, 413, 1204, 2069, 2017, 94, 1365, 308, 1635, 2551, 842, 2309, 1440, 746, 378, 2503, 809, 2537, 1084, 342, 2116, 694, 1315, 2486, 450, 1176, 259, 1052, 2089, 224, 2233, 984, 74, 952, 468, 1526, 1507, 1933, 1575, 915, 1954, 2209, 1894, 207, 24, 2022, 1279, 838, 2397, 1591, 1153, 1726, 870, 1544, 104, 367, 2191, 3, 380, 324, 28, 2378, 622, 2220, 732, 2435, 2001, 92, 2100, 619, 2510, 2465, 907, 1364, 580, 1068, 1518, 2253, 1268, 1625, 1477, 1216, 2036, 1535, 1491, 593, 1917, 60, 1220, 764, 2424, 2187, 886, 563, 1630, 265, 2024, 116, 2028, 291, 873, 1757, 1525, 2258, 1823, 946, 177, 1069, 514, 2107, 1512, 2472, 1175, 1970, 1331, 1538, 1487, 1633, 1136, 258, 780, 226, 2101, 124, 1253, 2310, 1023, 262, 2049, 127, 1727, 1887, 2041, 1610, 1214, 1827, 480, 1206, 1692, 2396, 129, 338, 2377, 2407, 1789, 683, 1443, 1304, 21, 685, 1990, 2532, 2250, 736, 2222, 31, 1366, 2138, 1273, 1170, 2493, 1223, 159, 1011, 1837, 345, 1074, 442, 1669, 2526, 2404, 2363, 420, 2172, 666, 42, 202, 2202, 2270, 965, 396, 2013, 319, 302, 459, 1882, 1496, 1476, 1956, 497, 157, 1913, 123, 1747, 768, 822, 382, 1410, 2211, 2562, 638, 1642, 1813, 280, 2023, 274, 89, 1336, 1333, 2473, 168, 1134, 1248, 799, 623, 1534, 2144, 1902, 1155, 1142, 529, 2156, 903, 1430, 1056, 1077, 1429, 1285, 1384, 1, 848, 1678, 729, 2056, 465, 20, 1377, 1688, 1694, 2052, 1104, 2349, 2312, 696, 621, 1514, 769, 1822, 664, 1741, 2553, 1117, 1652, 2032, 892, 2232, 1662, 1733, 2079, 1169, 444, 1462, 2466, 2364, 1984, 2195, 498, 1886, 219, 2229, 57, 1401, 691, 294, 2383, 1536, 2271, 2489, 814, 1671, 1939, 1729, 1378, 1898, 1590, 1945, 88, 1107, 795, 2538, 222, 172, 416, 539, 2124, 2520, 1129, 1191, 2350, 1604, 1369, 864, 704, 1141, 849, 1305, 587, 1835, 1257, 2306, 2360, 1992, 1721, 1479, 2423, 1809, 806, 640, 2545, 888, 1432, 604, 389, 105, 841, 766, 1701, 589, 774, 2426, 2029, 598, 1834, 292, 1296, 1347, 2244, 839, 803, 1703, 2359, 900, 884, 137, 1109, 2297, 549, 658, 2105, 221, 2104, 1851, 161, 1619, 1705, 2084, 1632, 1172, 1249, 184, 1226, 1568, 235, 2257, 1209, 866, 980, 2177, 779, 1115, 1371, 609, 1266, 927, 2088, 1614, 121, 39, 1332, 1130, 518, 2074, 2162, 1156, 2070, 1284, 1797, 1763, 895, 2234, 969, 1854, 885, 597, 642, 2227, 2516, 579, 548, 1802, 1852, 327, 264, 414, 630, 1493, 2014, 2186, 2442, 536, 1594, 272, 2496, 101, 820, 2575, 1816, 506, 863, 440, 2534, 2528, 1215, 490, 1744, 143, 2096, 502, 1546, 1896, 475, 2117, 2410, 1345, 2137, 297, 2518, 565, 547, 2509, 1374, 29, 868, 2175, 962, 181, 435, 1275, 1989, 2276, 1679, 470, 1323, 2468, 788, 1286, 1580, 2507, 750, 1124, 1923, 132, 2274, 818, 326, 916, 109, 1394, 1159, 1441, 985, 1348, 1826, 1103, 2413, 674, 197, 1540, 2495, 743, 910, 98, 2418, 876, 699, 800, 2278, 1716, 2523, 2129, 2, 650, 1928, 1508, 1034, 1460, 1143, 1188, 914, 639, 493, 676, 348, 978, 365, 1106, 1233, 95, 989, 2420, 1238, 1875, 2048, 200, 433, 1867, 1140, 0, 1372, 1072, 477, 2408, 1893, 1790, 2068, 1321, 991, 500, 1793, 1847, 507, 1869, 2215, 2007, 427, 1166, 717, 54, 721, 1271, 85, 1203, 810, 1325, 1513, 1050, 1375, 1376, 942, 953, 2004, 904, 2351, 1497, 2236, 720, 2469, 1965, 268, 2459, 2333, 854, 2225, 1940, 103, 333, 1962, 244, 14, 1824, 1465, 920, 2550, 990, 364, 1909, 1123, 1161, 457, 2323, 1063, 520, 1342, 2484, 38, 1180, 2356, 1177, 251, 1811, 2039, 428, 1821, 1456, 1986, 1587, 993, 1232, 556, 267, 1651, 1472, 1931, 1570, 1611, 637, 1780, 2542, 2447, 1147, 1400, 53, 379, 491, 1080, 624, 596, 2391, 905, 1578, 233, 2405, 140, 1361, 1815, 1760, 344, 1227, 1700, 2092, 1392, 1320, 1655, 2321, 1537, 523, 1675, 673, 1078, 2577, 2415, 1505, 1250, 1016, 874, 1708, 2490, 1899, 1955, 1075, 316, 2453, 843, 1461, 1732, 2513, 2203, 61, 919, 204, 315, 1111, 2481, 1812, 1683, 1413, 1749, 120, 1950, 2185, 1515, 2015, 1799, 1643, 675, 436, 1330, 850, 1355, 703, 472, 373, 592, 2434, 509, 1577, 837, 2098, 1000, 492, 2127, 1803, 858, 1649, 999, 1957, 1290, 1391, 977, 636, 891, 451, 35, 2148, 2240, 631, 1094, 99, 1973, 329, 1195, 1324, 1260, 1070, 1363, 1768, 1350, 409, 1983, 1895, 832, 238, 2281, 1855, 1766, 844, 1499, 571, 82, 390, 728, 2412, 1436, 1274, 1154, 128, 1402, 1424, 1427, 178, 1866, 400, 2136, 1390, 789, 740, 2384, 1481, 271, 983, 2246, 2285, 1919, 1207, 2327, 570, 160, 578, 1929, 816, 550, 403, 896, 2491, 925, 1403, 833, 2456, 1841, 2027, 1353, 1492, 446, 1086, 144, 745, 1925, 613, 851, 1558, 2189, 2530, 284, 118, 2527, 1445, 2567, 966, 2517, 2259], + disps: &[(0, 19), (0, 0), (0, 1), (0, 5), (0, 17), (0, 0), (0, 40), (0, 53), (0, 132), (0, 1), (0, 2), (0, 20), (0, 4), (0, 17), (0, 3), (0, 0), (0, 2), (0, 0), (0, 9), (0, 65), (0, 8), (0, 17), (0, 5), (0, 2), (0, 28), (0, 12), (0, 0), (0, 3), (0, 9), (0, 1), (0, 1), (0, 9), (0, 0), (0, 2), (0, 0), (0, 1), (0, 12), (0, 6), (0, 0), (0, 7), (1, 0), (0, 10), (0, 6), (0, 2), (0, 9), (0, 34), (0, 12), (0, 6), (0, 82), (0, 3), (0, 17), (0, 12), (0, 16), (0, 6), (0, 9), (0, 4), (0, 2), (0, 0), (0, 1), (0, 3), (0, 0), (0, 26), (0, 29), (0, 29), (0, 12), (0, 20), (0, 1), (0, 13), (0, 0), (0, 0), (0, 2), (0, 1), (0, 39), (0, 0), (0, 4), (0, 0), (0, 9), (0, 0), (0, 1), (0, 3), (0, 2), (0, 1), (0, 5), (0, 14), (0, 3), (0, 1), (0, 0), (0, 0), (0, 0), (0, 13), (0, 16), (0, 8), (0, 0), (0, 49), (0, 2), (0, 66), (0, 27), (0, 98), (0, 5), (0, 4), (0, 9), (0, 10), (0, 11), (0, 8), (0, 0), (0, 3), (0, 45), (0, 0), (0, 0), (0, 0), (0, 0), (0, 1), (0, 12), (0, 0), (0, 9), (0, 9), (0, 1), (0, 2), (0, 4), (0, 0), (0, 5), (0, 8), (0, 58), (0, 3), (0, 47), (0, 0), (0, 3), (0, 5), (0, 28), (0, 0), (0, 10), (0, 1), (0, 52), (0, 14), (0, 0), (0, 2), (0, 2), (0, 0), (0, 7), (0, 8), (0, 0), (0, 9), (0, 0), (0, 0), (0, 10), (0, 16), (0, 9), (0, 35), (0, 40), (0, 8), (0, 0), (0, 2), (0, 2), (0, 6), (0, 3), (0, 95), (0, 10), (0, 59), (0, 2), (0, 6), (0, 0), (0, 1), (0, 63), (0, 2), (0, 1), (0, 18), (0, 12), (0, 0), (0, 66), (0, 0), (0, 29), (0, 22), (0, 8), (0, 14), (0, 9), (0, 9), (0, 0), (0, 2), (0, 7), (0, 8), (0, 1), (0, 0), (0, 17), (0, 5), (0, 0), (0, 1), (0, 0), (0, 5), (0, 11), (0, 32), (0, 12), (0, 0), (0, 8), (0, 0), (0, 5), (0, 0), (0, 26), (0, 117), (0, 0), (0, 8), (0, 0), (0, 12), (0, 1), (0, 0), (0, 4), (0, 2), (0, 9), (0, 2), (0, 6), (0, 0), (0, 0), (0, 108), (0, 0), (0, 2), (0, 5), (0, 25), (0, 0), (0, 0), (0, 42), (0, 0), (0, 10), (0, 10), (0, 2), (0, 3), (0, 96), (0, 0), (0, 10), (0, 138), (0, 8), (0, 0), (0, 24), (0, 0), (0, 0), (0, 19), (0, 63), (0, 21), (0, 0), (0, 34), (0, 0), (0, 21), (0, 34), (0, 1), (0, 13), (0, 95), (0, 0), (0, 0), (0, 71), (0, 9), (0, 90), (0, 19), (0, 21), (0, 3), (0, 1), (0, 2), (0, 2), (0, 1), (0, 41), (0, 1), (0, 39), (0, 0), (0, 0), (0, 1), (0, 3), (0, 6), (0, 15), (0, 5), (0, 21), (0, 17), (0, 33), (0, 14), (0, 9), (0, 23), (0, 70), (0, 17), (0, 15), (0, 3), (0, 9), (0, 0), (0, 15), (0, 7), (0, 1), (0, 59), (0, 19), (0, 12), (0, 65), (0, 22), (0, 33), (0, 3), (0, 4), (0, 0), (0, 0), (0, 2), (0, 6), (0, 19), (0, 0), (0, 0), (0, 4), (0, 52), (0, 35), (0, 12), (0, 26), (0, 31), (0, 2), (0, 6), (0, 45), (0, 7), (0, 3), (0, 15), (0, 0), (0, 0), (0, 2), (0, 10), (0, 3), (0, 0), (0, 7), (0, 8), (0, 0), (0, 9), (0, 0), (0, 2), (0, 0), (0, 0), (0, 12), (0, 18), (0, 3), (0, 38), (0, 55), (0, 21), (0, 0), (0, 0), (0, 0), (0, 3), (0, 0), (0, 8), (0, 0), (0, 16), (0, 18), (0, 4), (0, 15), (0, 2), (0, 0), (0, 9), (0, 33), (0, 53), (0, 0), (0, 1), (0, 0), (0, 87), (0, 0), (0, 5), (0, 89), (0, 0), (0, 3), (0, 9), (0, 129), (0, 279), (0, 0), (0, 151), (0, 5), (0, 0), (0, 69), (0, 36), (0, 7), (0, 38), (0, 0), (0, 13), (0, 10), (0, 59), (0, 9), (0, 0), (0, 0), (0, 9), (0, 5), (0, 2), (0, 34), (0, 39), (0, 133), (0, 168), (0, 0), (0, 2), (0, 44), (0, 18), (0, 7), (0, 16), (0, 0), (0, 32), (0, 18), (0, 15), (0, 39), (0, 169), (0, 1), (0, 14), (0, 2), (0, 3), (0, 1), (0, 11), (0, 28), (0, 3), (0, 28), (0, 313), (0, 132), (0, 12), (0, 0), (0, 238), (0, 13), (0, 31), (0, 93), (0, 40), (0, 40), (0, 7), (0, 9), (0, 4), (0, 27), (0, 31), (0, 28), (0, 1), (0, 0), (0, 14), (0, 314), (0, 17), (0, 2), (0, 6), (0, 8), (0, 9), (0, 0), (0, 14), (0, 16), (0, 0), (0, 1), (0, 5), (0, 3), (0, 0), (0, 35), (0, 5), (0, 0), (0, 26), (0, 8), (0, 2), (0, 1), (0, 26), (0, 22), (0, 93), (0, 2), (0, 25), (0, 1), (0, 10), (0, 28), (0, 0), (0, 36), (0, 27), (0, 0), (0, 7), (0, 30), (0, 27), (0, 0), (0, 97), (0, 0), (0, 131), (0, 5), (0, 0), (0, 23), (0, 2), (0, 0), (0, 5), (0, 2), (0, 1), (0, 40), (0, 2), (0, 3), (0, 65), (0, 2), (0, 26), (0, 107), (0, 71), (0, 36), (0, 43), (0, 30), (0, 0), (0, 90), (0, 0), (0, 0), (0, 0), (0, 22), (0, 33), (0, 3), (0, 23), (0, 0), (0, 4), (0, 0), (0, 16), (0, 5), (0, 0), (0, 15), (0, 3), (0, 17), (0, 0), (0, 18), (0, 0), (0, 17), (0, 5), (0, 22), (0, 2), (0, 1), (0, 1), (0, 13), (0, 158), (0, 48), (0, 2), (0, 13), (0, 9), (0, 5), (0, 13), (0, 63), (0, 32), (0, 99), (0, 0), (0, 0), (0, 55), (0, 14), (0, 0), (0, 64), (0, 11), (0, 57), (0, 0), (0, 2), (0, 2), (0, 0), (0, 15), (0, 7), (0, 354), (0, 7), (0, 6), (0, 3), (0, 5), (0, 2), (0, 0), (0, 1), (0, 55), (0, 0), (0, 231), (0, 14), (0, 62), (0, 0), (0, 1), (0, 1), (0, 7), (0, 0), (0, 6), (0, 3), (0, 8), (0, 0), (0, 41), (0, 38), (0, 2), (0, 8), (0, 2), (0, 226), (0, 0), (0, 0), (0, 2), (0, 9), (0, 38), (0, 0), (0, 0), (0, 91), (0, 12), (0, 8), (0, 77), (0, 11), (0, 4), (0, 14), (0, 1), (0, 99), (0, 0), (0, 40), (0, 0), (0, 11), (0, 56), (0, 23), (0, 93), (0, 33), (0, 23), (0, 0), (0, 0), (0, 60), (0, 122), (0, 16), (0, 12), (0, 19), (0, 1), (0, 17), (0, 0), (0, 12), (0, 34), (0, 21), (0, 170), (0, 1), (0, 3), (0, 16), (0, 2), (0, 35), (0, 1), (0, 24), (0, 285), (0, 0), (0, 141), (0, 60), (0, 0), (0, 106), (0, 77), (0, 35), (0, 82), (0, 24), (0, 18), (0, 27), (0, 22), (0, 5), (0, 73), (0, 0), (0, 46), (0, 17), (0, 0), (0, 19), (0, 106), (0, 6), (0, 5), (0, 14), (0, 3), (0, 0), (0, 272), (0, 6), (0, 23), (0, 0), (0, 1), (0, 331), (0, 14), (0, 6), (0, 7), (0, 24), (0, 2), (0, 9), (0, 0), (0, 0), (0, 88), (0, 0), (0, 5), (0, 68), (0, 298), (0, 28), (0, 9), (0, 262), (0, 22), (0, 41), (0, 0), (0, 18), (0, 4), (0, 1), (0, 6), (0, 7), (0, 1), (0, 0), (0, 94), (0, 34), (0, 504), (0, 0), (0, 8), (0, 3), (0, 703), (0, 1), (0, 5), (0, 5), (0, 132), (0, 37), (0, 3), (0, 14), (0, 536), (0, 6), (0, 0), (0, 0), (0, 71), (0, 32), (0, 3), (0, 7), (0, 5), (0, 187), (0, 7), (0, 29), (0, 0), (0, 2), (0, 59), (0, 353), (0, 2), (0, 6), (0, 0), (0, 1), (0, 78), (0, 49), (0, 11), (0, 244), (0, 1), (0, 1), (0, 1053), (0, 0), (0, 98), (0, 68), (0, 625), (0, 62), (0, 4), (0, 79), (0, 38), (0, 112), (0, 7), (0, 384), (0, 122), (0, 2), (0, 325), (0, 8), (0, 16), (0, 0), (0, 3), (0, 9), (0, 33), (0, 7), (0, 8), (0, 14), (0, 5), (0, 1), (0, 3), (0, 299), (0, 2), (0, 29), (0, 30), (0, 37), (0, 829), (0, 0), (0, 8), (0, 0), (0, 5), (0, 71), (0, 0), (0, 90), (0, 41), (0, 375), (0, 73), (0, 0), (0, 171), (0, 1083), (0, 23), (0, 5), (0, 0), (0, 0), (0, 712), (0, 207), (0, 6), (0, 781), (0, 0), (0, 4), (0, 11), (0, 0), (0, 101), (0, 302), (0, 20), (0, 26), (0, 5), (0, 8), (0, 0), (0, 64), (0, 0), (0, 4), (0, 5), (0, 166), (0, 2), (0, 5), (0, 91), (0, 814), (0, 44), (0, 11), (0, 105), (0, 71), (0, 1253), (0, 57), (0, 332), (0, 119), (0, 3), (0, 183), (0, 29), (0, 2), (0, 69), (0, 125), (0, 266), (0, 30), (0, 21), (0, 12), (0, 133), (0, 21), (0, 16), (0, 0), (0, 19), (0, 0), (0, 160), (0, 1), (0, 17), (0, 15), (0, 4), (0, 690), (0, 4), (0, 215), (0, 104), (0, 61), (0, 53), (0, 178), (0, 591), (0, 2), (0, 4), (0, 157), (0, 162), (0, 277), (0, 285), (0, 0), (0, 180), (0, 49), (0, 1), (0, 0), (0, 23), (0, 0), (0, 6), (0, 2), (0, 1), (0, 1), (0, 90), (0, 24), (0, 68), (0, 14), (0, 0), (0, 25), (0, 9), (0, 88), (0, 68), (0, 6), (0, 1105), (0, 24), (0, 0), (0, 129), (0, 41), (0, 43), (0, 61), (0, 1026), (0, 51), (0, 1466), (0, 14), (0, 1), (0, 40), (0, 2), (0, 0), (0, 1090), (0, 0), (0, 2), (0, 15), (0, 1), (0, 96), (0, 4), (0, 4), (0, 8), (0, 1359), (0, 8), (0, 0), (0, 0), (0, 1), (0, 8), (0, 0), (0, 32), (0, 5), (0, 31), (0, 20), (0, 0), (0, 0), (0, 10), (0, 225), (0, 0), (0, 2), (0, 1040), (0, 11), (0, 2), (0, 0), (0, 64), (0, 0), (0, 111), (0, 8), (0, 5), (0, 17), (0, 7), (0, 393), (0, 8), (0, 379), (0, 342), (0, 76), (0, 4), (0, 1499), (0, 323), (0, 16), (0, 7), (0, 86), (0, 0), (0, 140), (0, 830), (0, 0), (0, 1215), (0, 3), (0, 0), (0, 258), (0, 143), (0, 0), (0, 47), (0, 13), (0, 385), (0, 2), (0, 12), (0, 1049), (0, 6), (0, 0), (0, 0), (0, 994), (0, 26), (0, 6), (0, 186), (0, 8), (0, 29), (0, 0), (0, 52), (0, 1), (0, 85), (0, 0), (0, 50), (0, 0), (0, 29), (0, 0), (0, 66), (0, 26), (0, 50), (0, 0), (0, 4), (0, 1), (0, 100), (0, 23), (0, 506), (0, 51), (0, 0), (0, 40), (0, 0), (0, 0), (0, 20), (0, 26), (0, 1786), (0, 2), (0, 10), (0, 355), (0, 171), (0, 16), (0, 1723), (0, 2), (0, 0), (0, 0), (0, 0), (0, 118), (0, 596), (0, 13), (0, 0), (0, 694), (0, 76), (0, 0), (0, 853), (0, 57), (0, 14), (0, 37), (0, 42), (0, 6), (0, 3), (0, 4), (0, 0), (0, 35), (0, 17), (0, 972), (0, 68), (0, 1), (0, 32), (0, 16), (0, 243), (0, 0), (0, 23), (0, 12), (0, 2), (0, 216), (0, 1849), (0, 184), (0, 484), (0, 2235), (0, 45), (0, 95), (0, 0), (0, 1555), (0, 41), (0, 9), (0, 13), (0, 1607), (0, 7), (0, 31), (0, 3), (0, 61), (0, 1326), (0, 0), (0, 817), (0, 79), (0, 0), (0, 65), (0, 0), (0, 5), (0, 29), (0, 59), (0, 2), (0, 21), (0, 682), (0, 0), (0, 322), (0, 1880)], + map: &[387, 2301, 505, 2147, 1460, 1651, 298, 860, 677, 1028, 283, 1888, 2475, 373, 1518, 2547, 2612, 1374, 286, 1118, 853, 1723, 1172, 1669, 894, 756, 325, 2000, 621, 1644, 1598, 1103, 763, 2042, 752, 2155, 1021, 1327, 2431, 2031, 1348, 2527, 1859, 555, 836, 1585, 895, 1783, 501, 94, 471, 538, 2168, 1433, 939, 1349, 755, 1732, 1972, 102, 2494, 2376, 344, 1989, 2488, 418, 958, 1070, 1106, 2308, 28, 1547, 565, 655, 754, 536, 1222, 2591, 1047, 551, 1073, 2278, 1478, 202, 1130, 1235, 1164, 1821, 258, 1011, 775, 791, 1182, 1849, 485, 1233, 2455, 2104, 225, 138, 432, 1730, 2533, 2460, 1279, 172, 2086, 2243, 1955, 1963, 2441, 421, 411, 509, 2454, 2468, 2132, 848, 305, 2292, 2238, 1692, 1724, 2204, 2307, 846, 2124, 1915, 2217, 542, 1, 1452, 824, 364, 1506, 1090, 1612, 22, 1983, 1188, 533, 637, 393, 2411, 1361, 694, 663, 1823, 1247, 1089, 936, 2177, 1328, 1704, 469, 1499, 2590, 927, 881, 1410, 2285, 521, 2254, 296, 1531, 2543, 2482, 1177, 43, 2545, 769, 90, 165, 1091, 308, 1474, 1030, 617, 1802, 2052, 2226, 40, 91, 11, 2401, 962, 424, 2354, 425, 1748, 208, 2273, 2105, 1747, 2159, 370, 1246, 2623, 2050, 1647, 487, 966, 2487, 883, 2516, 918, 1393, 1366, 1427, 1657, 1331, 989, 631, 1677, 899, 2210, 1313, 1417, 986, 2546, 1865, 888, 1789, 1583, 1617, 1437, 1450, 313, 230, 1549, 504, 343, 1721, 2413, 2567, 1929, 1178, 130, 2428, 262, 1843, 1345, 873, 331, 2133, 1254, 2160, 610, 2225, 1990, 2126, 214, 497, 891, 1086, 1444, 1386, 600, 2452, 1938, 539, 243, 267, 2118, 596, 2532, 360, 1039, 1484, 1202, 2060, 1488, 1412, 1712, 581, 1496, 1113, 801, 1878, 858, 1306, 368, 1770, 996, 2355, 1223, 515, 210, 10, 1700, 528, 1693, 2625, 1609, 2447, 2244, 241, 1381, 589, 2318, 186, 2239, 1603, 2438, 1946, 2165, 1449, 554, 1653, 2423, 1931, 2195, 1737, 318, 1325, 257, 314, 2347, 507, 1941, 896, 2392, 1480, 1110, 2274, 2041, 1201, 395, 2432, 240, 1029, 1621, 1763, 2099, 975, 34, 1141, 1957, 1846, 945, 2235, 1535, 2108, 1050, 285, 2364, 1401, 1026, 1774, 49, 1835, 624, 582, 1601, 131, 1064, 1163, 973, 64, 1940, 193, 52, 1992, 2505, 1635, 1190, 2403, 1733, 1107, 430, 502, 2595, 1002, 311, 76, 1005, 2245, 1455, 1947, 749, 1655, 2528, 1854, 1215, 2555, 1443, 2388, 2562, 229, 496, 179, 1863, 1932, 1191, 2077, 2481, 218, 1104, 270, 1993, 1543, 453, 1006, 524, 1289, 547, 1928, 384, 1575, 932, 2208, 1346, 1740, 2495, 2189, 1108, 2069, 640, 155, 2363, 396, 1068, 908, 2138, 254, 1629, 1168, 2064, 1760, 1376, 949, 2279, 1830, 613, 2588, 1212, 2019, 718, 518, 1793, 667, 880, 810, 2097, 1996, 1775, 1611, 2573, 2075, 661, 212, 674, 1641, 2229, 1571, 2350, 2390, 2081, 178, 2312, 1935, 2300, 2222, 2293, 379, 889, 1662, 503, 353, 2574, 814, 2112, 1426, 1548, 114, 1791, 191, 1088, 2394, 2240, 587, 1785, 2270, 1037, 866, 580, 1633, 1267, 1567, 2539, 1476, 2366, 21, 747, 1429, 774, 1078, 1032, 30, 2182, 841, 1503, 194, 1573, 1020, 643, 1784, 42, 558, 2353, 309, 1978, 65, 1516, 279, 1268, 597, 1469, 1127, 221, 2129, 2145, 39, 1544, 435, 2616, 692, 739, 2578, 2421, 2106, 458, 1592, 1673, 1792, 2531, 2227, 673, 2067, 1249, 1569, 2358, 1042, 488, 951, 2400, 2457, 1368, 1497, 412, 2535, 605, 1093, 622, 701, 85, 1210, 1555, 82, 2396, 2002, 1114, 2110, 1646, 2512, 2169, 1379, 1885, 2161, 593, 302, 972, 1170, 576, 1901, 988, 1299, 1407, 1720, 516, 1198, 2148, 1616, 1343, 2536, 271, 213, 2141, 323, 2033, 1778, 569, 2093, 646, 1918, 2414, 2013, 1980, 2056, 1074, 897, 1218, 113, 374, 1969, 586, 871, 2264, 256, 1776, 295, 937, 511, 1697, 2173, 1363, 1105, 1301, 248, 2167, 2436, 1588, 366, 773, 1238, 1291, 1658, 2095, 1614, 2262, 2269, 650, 1326, 1200, 149, 806, 181, 2215, 571, 748, 2592, 1804, 1914, 1161, 2584, 535, 2158, 1637, 1727, 877, 543, 2164, 1826, 522, 1582, 1084, 1913, 1467, 2134, 2045, 1052, 1615, 1100, 128, 1485, 2018, 479, 144, 1772, 664, 513, 653, 495, 199, 874, 746, 2503, 809, 217, 1208, 1591, 207, 733, 2464, 300, 1418, 2517, 1333, 1962, 1532, 1477, 1305, 272, 406, 2281, 573, 2257, 1668, 1486, 48, 86, 392, 2170, 2288, 2478, 666, 1623, 1244, 1550, 1926, 2427, 1949, 141, 1755, 1897, 75, 2016, 1126, 1481, 556, 1817, 498, 1321, 1537, 171, 2346, 1187, 800, 1165, 96, 1836, 1527, 2123, 493, 2103, 334, 1294, 1065, 1745, 660, 1908, 1017, 1951, 1900, 1707, 2061, 404, 992, 72, 358, 2192, 1049, 933, 1533, 1607, 1642, 795, 1434, 2416, 2474, 1067, 870, 2362, 1925, 454, 629, 1984, 195, 797, 1728, 1822, 2367, 950, 1077, 2484, 2446, 826, 707, 2422, 2122, 2082, 2439, 2233, 1451, 2232, 2272, 410, 1517, 1694, 683, 1135, 2068, 675, 886, 867, 1271, 685, 1832, 919, 367, 2489, 1656, 2187, 964, 991, 1684, 51, 1858, 2157, 1964, 2433, 1081, 1085, 1848, 2449, 189, 2313, 1242, 1414, 61, 1281, 1664, 1250, 7, 844, 1423, 1618, 612, 1534, 1708, 1487, 732, 413, 829, 477, 1975, 1193, 2084, 903, 2205, 1625, 111, 2007, 1879, 62, 879, 1046, 16, 2402, 204, 955, 2131, 2059, 2083, 2066, 965, 1352, 467, 578, 277, 2107, 544, 2247, 1545, 602, 869, 1782, 67, 1269, 1820, 1691, 1405, 575, 1850, 121, 859, 1580, 644, 332, 2467, 2144, 84, 2255, 1556, 598, 857, 983, 409, 1731, 904, 592, 2055, 2286, 175, 1754, 771, 1654, 514, 572, 156, 1167, 1683, 81, 693, 967, 281, 2032, 679, 1117, 1240, 1439, 284, 1967, 708, 1255, 1729, 802, 1994, 391, 170, 703, 788, 422, 1258, 724, 2605, 1796, 1991, 2116, 2171, 1758, 1613, 2540, 1464, 1819, 550, 1146, 188, 206, 902, 1756, 2111, 1264, 812, 1300, 2290, 549, 1860, 196, 125, 1136, 1797, 1538, 960, 2525, 2420, 2156, 520, 2437, 2360, 173, 2094, 1101, 1158, 205, 1206, 2, 1019, 60, 567, 381, 1324, 1761, 1311, 1788, 1773, 20, 680, 1768, 668, 977, 1273, 2456, 696, 1950, 720, 1285, 129, 651, 1630, 2602, 268, 645, 470, 2043, 1557, 1725, 1134, 388, 583, 57, 2101, 1296, 1275, 634, 1716, 2030, 2109, 821, 2342, 557, 348, 1857, 1013, 1461, 794, 15, 1195, 327, 1576, 1605, 2511, 450, 1335, 355, 1151, 1387, 778, 245, 553, 1430, 1685, 1176, 2514, 1370, 1315, 1771, 864, 122, 1581, 1156, 1790, 1040, 2500, 636, 735, 2473, 1169, 333, 662, 1881, 1917, 1121, 784, 1341, 224, 6, 2415, 1827, 461, 433, 1404, 1594, 1045, 2575, 803, 1416, 678, 2374, 201, 1213, 726, 2011, 1014, 1475, 1526, 275, 1610, 329, 1933, 2450, 1919, 2499, 722, 2188, 1968, 2315, 1561, 438, 124, 2613, 2309, 2448, 1220, 1911, 1025, 1564, 658, 1304, 238, 647, 1062, 2445, 882, 1119, 872, 1631, 115, 2296, 1546, 2198, 1626, 1431, 460, 1150, 386, 2175, 182, 2569, 1661, 626, 1974, 561, 1922, 2359, 1977, 1083, 2323, 1216, 38, 1160, 1945, 1377, 2610, 312, 1735, 2434, 706, 2038, 1650, 1096, 2381, 1887, 926, 1035, 1738, 1529, 127, 244, 263, 1966, 2196, 17, 1109, 862, 468, 2017, 676, 816, 1674, 1276, 1924, 847, 105, 2065, 2498, 517, 1806, 47, 2181, 356, 1812, 981, 1369, 541, 1048, 93, 1986, 2440, 132, 428, 717, 990, 1958, 1227, 66, 1159, 1652, 1794, 1810, 2331, 1399, 2405, 1880, 1284, 723, 887, 429, 2520, 1293, 2219, 758, 625, 729, 2526, 71, 2005, 385, 921, 1072, 1153, 1574, 1739, 546, 2389, 98, 1359, 1579, 863, 340, 594, 793, 2587, 1498, 1558, 1553, 33, 2598, 1360, 2271, 691, 2486, 1317, 2370, 922, 250, 148, 1320, 648, 2417, 2618, 357, 1869, 1203, 1462, 152, 508, 745, 2328, 2501, 1472, 1219, 2071, 1041, 1872, 2275, 1312, 2303, 1420, 2327, 1764, 1122, 423, 842, 2330, 832, 1634, 938, 759, 2291, 480, 371, 963, 291, 2098, 242, 1713, 790, 1336, 1194, 265, 2314, 151, 2249, 654, 776, 2352, 135, 2333, 827, 985, 405, 2332, 855, 1807, 2426, 19, 1402, 184, 2479, 1226, 1297, 529, 1690, 2469, 12, 2200, 2471, 2252, 2183, 1847, 1142, 1471, 1034, 1397, 59, 2513, 449, 1280, 1762, 166, 13, 2087, 559, 2430, 1855, 1342, 697, 500, 1384, 1350, 2384, 1051, 807, 744, 760, 228, 2125, 37, 929, 1695, 1874, 1853, 2076, 56, 253, 1589, 506, 2586, 352, 1245, 764, 2463, 261, 2135, 1744, 792, 2379, 1454, 2241, 2151, 83, 2472, 494, 486, 219, 2079, 440, 408, 2216, 705, 143, 830, 1057, 1519, 2260, 1559, 1563, 1501, 1252, 885, 772, 1997, 900, 2407, 466, 2419, 1004, 512, 2408, 1355, 2034, 2338, 394, 566, 1237, 1515, 725, 656, 2386, 914, 2552, 176, 1442, 2372, 1310, 1314, 1873, 2593, 80, 1079, 160, 2329, 1183, 2029, 2063, 2128, 330, 2585, 2003, 2266, 861, 1701, 716, 1459, 2231, 1525, 1372, 2102, 2599, 491, 443, 2465, 446, 2298, 737, 1891, 1952, 851, 1232, 1743, 2008, 2583, 441, 1102, 1659, 237, 1303, 2297, 1458, 838, 2506, 687, 2491, 1069, 399, 1620, 2259, 377, 699, 2324, 537, 1954, 1710, 2036, 649, 884, 50, 968, 1509, 1824, 2365, 702, 619, 1087, 1956, 25, 1282, 898, 2051, 1904, 545, 475, 913, 1123, 1447, 2193, 2218, 1786, 979, 1814, 1175, 840, 1595, 232, 970, 2622, 95, 2136, 1870, 338, 1943, 2072, 628, 1667, 2378, 464, 2504, 948, 1973, 158, 1098, 1587, 2004, 1322, 652, 639, 164, 715, 1805, 2026, 828, 659, 2564, 993, 1703, 1257, 1125, 1239, 2515, 46, 2339, 31, 2142, 713, 928, 1866, 92, 1080, 835, 280, 695, 2163, 1711, 2015, 785, 2541, 813, 780, 532, 2046, 1976, 1828, 1357, 2391, 2146, 231, 2335, 2224, 2351, 1225, 2459, 2344, 1505, 548, 89, 1578, 483, 526, 1411, 1769, 126, 1803, 943, 342, 1272, 1261, 402, 463, 2444, 736, 1027, 789, 1036, 372, 618, 531, 2234, 361, 2115, 1746, 2571, 1514, 1446, 1425, 2089, 1463, 119, 1715, 1800, 700, 890, 9, 907, 1082, 1340, 2375, 2624, 2340, 1371, 235, 607, 684, 2178, 997, 2287, 714, 1171, 1602, 1767, 1309, 1334, 849, 2150, 910, 2237, 292, 1316, 320, 499, 1981, 2548, 1137, 97, 710, 1259, 1008, 2282, 1099, 865, 380, 70, 633, 1696, 2220, 2483, 2214, 1419, 146, 525, 106, 103, 934, 1765, 2085, 14, 2143, 153, 1648, 407, 1152, 2522, 2404, 1448, 363, 401, 1942, 817, 145, 519, 378, 1604, 2470, 743, 1815, 2521, 2380, 1882, 2451, 63, 1139, 1007, 2382, 1838, 1356, 233, 1676, 1358, 1095, 731, 2153, 2184, 2322, 2212, 2213, 462, 767, 534, 808, 768, 1678, 2211, 2049, 1270, 2357, 1392, 1867, 1702, 1554, 198, 79, 359, 1424, 1016, 1184, 100, 1521, 2537, 1833, 1899, 1861, 1053, 319, 609, 419, 1937, 1864, 757, 1186, 220, 1934, 751, 1283, 978, 1560, 1837, 2560, 822, 893, 2343, 931, 436, 1094, 287, 415, 709, 1274, 2304, 2073, 2558, 2490, 459, 1524, 351, 1638, 2070, 2572, 1522, 1138, 1687, 1154, 1207, 109, 2062, 147, 120, 1829, 2207, 2589, 1530, 289, 2418, 570, 2435, 2120, 2361, 833, 223, 1209, 2283, 1599, 1920, 2577, 58, 2395, 1596, 2127, 2310, 118, 721, 530, 1456, 185, 2250, 1845, 738, 1470, 2356, 2203, 878, 1483, 2236, 273, 845, 465, 335, 288, 1999, 940, 941, 478, 18, 1608, 2579, 2039, 140, 1395, 1936, 1852, 303, 2462, 8, 390, 1199, 1689, 2615, 1494, 301, 1523, 2006, 481, 2406, 839, 1248, 630, 740, 307, 1389, 1495, 1643, 2221, 952, 1536, 2368, 1174, 1323, 2230, 2251, 2604, 259, 1344, 2550, 442, 686, 1593, 350, 1116, 2556, 1385, 2529, 294, 341, 681, 704, 316, 1353, 474, 2409, 2566, 55, 728, 1415, 2594, 976, 1224, 2580, 2581, 252, 36, 688, 2563, 1262, 420, 2001, 1058, 1961, 911, 490, 69, 299, 492, 798, 2345, 1520, 2305, 3, 234, 1944, 2263, 1489, 2025, 1998, 2197, 1211, 1490, 108, 104, 2299, 2228, 999, 2620, 765, 1671, 1473, 426, 1302, 1666, 451, 389, 819, 1871, 2277, 584, 239, 1061, 2048, 969, 2398, 2477, 99, 1409, 1988, 1959, 2047, 1266, 805, 2186, 2246, 27, 1686, 632, 174, 820, 2443, 1916, 1640, 1709, 560, 2507, 924, 1365, 781, 698, 321, 2294, 1076, 2035, 101, 2202, 1679, 2603, 2551, 665, 157, 1332, 1663, 2325, 1145, 2502, 1787, 1403, 850, 1196, 984, 133, 1075, 116, 1438, 337, 437, 2621, 1921, 45, 2162, 1751, 1398, 365, 139, 1818, 1277, 2607, 161, 843, 1288, 753, 1155, 2385, 375, 1665, 2194, 1394, 1018, 2397, 577, 24, 1781, 88, 954, 1337, 1868, 2152, 345, 324, 1698, 2518, 2608, 2373, 672, 603, 2088, 1354, 591, 177, 1825, 2559, 905, 1319, 1197, 1528, 510, 1097, 601, 1180, 1577, 875, 730, 527, 2185, 1551, 1699, 994, 762, 1910, 783, 804, 1645, 942, 2496, 1688, 2206, 1734, 137, 215, 2349, 293, 1736, 1243, 1391, 2570, 1023, 2523, 200, 134, 1512, 719, 1597, 980, 1092, 959, 1375, 1465, 445, 417, 2012, 1902, 1541, 1890, 2092, 2524, 1856, 1338, 1628, 1043, 439, 1143, 957, 1893, 2054, 786, 1308, 1649, 623, 956, 2074, 2090, 2399, 2568, 278, 1111, 2316, 1883, 852, 1228, 2258, 1862, 741, 2597, 2010, 1750, 1185, 1660, 1722, 2425, 2021, 1457, 0, 1148, 1675, 2319, 290, 2453, 1566, 1565, 1995, 376, 823, 540, 1362, 1383, 2209, 1851, 1378, 383, 1681, 2149, 2509, 2140, 2114, 1024, 2137, 818, 1606, 112, 1129, 427, 5, 657, 1502, 1979, 608, 971, 1892, 1000, 642, 54, 796, 484, 35, 935, 611, 326, 606, 1432, 1286, 1012, 2130, 620, 616, 1898, 2544, 1466, 1382, 856, 2201, 1044, 690, 1441, 947, 2387, 482, 2265, 1811, 1162, 1295, 78, 349, 1406, 1682, 1742, 1960, 1808, 1636, 247, 2348, 1672, 1834, 2139, 2289, 2534, 1586, 1181, 1905, 2023, 563, 473, 2040, 2256, 946, 1884, 2614, 403, 150, 1780, 2410, 2485, 1031, 1063, 1753, 552, 2058, 1351, 2166, 1923, 1436, 448, 1241, 107, 136, 1600, 2493, 2337, 1479, 455, 568, 761, 1726, 1166, 1912, 1948, 669, 2480, 322, 811, 917, 227, 346, 1435, 456, 1400, 1445, 750, 2027, 260, 274, 2510, 1287, 868, 2280, 2538, 635, 29, 585, 1298, 2121, 2617, 638, 339, 712, 2096, 369, 2326, 2302, 2295, 1124, 251, 123, 1799, 777, 2284, 1440, 2078, 1428, 457, 2199, 1221, 1189, 362, 1217, 2377, 1795, 614, 2334, 1001, 1038, 23, 476, 222, 1144, 2242, 1380, 1718, 1568, 2461, 2508, 306, 2565, 588, 1840, 766, 2248, 2100, 1234, 1388, 1895, 1173, 599, 1147, 1133, 297, 689, 912, 1205, 1624, 1766, 4, 2176, 1939, 1779, 1231, 414, 2596, 2557, 192, 44, 1809, 564, 1066, 41, 159, 1798, 2037, 328, 627, 2190, 1022, 354, 447, 2369, 2611, 734, 1622, 216, 915, 1717, 87, 742, 1265, 1590, 1777, 2542, 162, 347, 226, 452, 1364, 944, 163, 1396, 579, 2371, 68, 2497, 1318, 1179, 1230, 282, 2530, 1927, 154, 1619, 831, 1003, 2412, 2253, 1741, 1422, 1347, 1256, 1632, 310, 1214, 837, 1260, 2267, 1157, 1253, 2442, 2117, 110, 1757, 1511, 1015, 799, 916, 2014, 416, 1236, 26, 168, 2119, 920, 1009, 1500, 434, 1278, 595, 1115, 2276, 1128, 1844, 604, 1263, 197, 1584, 1408, 1367, 1719, 1839, 1060, 1759, 276, 779, 246, 249, 2619, 1570, 2321, 987, 1307, 2317, 1054, 1572, 1801, 1330, 727, 2341, 1749, 336, 2609, 1373, 1965, 1229, 1953, 2383, 2020, 825, 315, 1055, 2582, 2009, 2561, 961, 2600, 1010, 562, 1192, 142, 1290, 2606, 2057, 1482, 1971, 1909, 523, 1906, 266, 2320, 930, 892, 1680, 906, 1468, 901, 1540, 1877, 574, 1339, 2113, 641, 953, 1390, 1985, 590, 203, 1329, 1982, 1842, 269, 2519, 615, 1510, 1816, 1875, 782, 1131, 923, 1894, 2028, 32, 264, 1140, 909, 854, 304, 1552, 2261, 180, 2601, 925, 1705, 317, 2466, 1970, 2024, 1714, 2191, 982, 2091, 1491, 1493, 1056, 1033, 1132, 2080, 77, 711, 1896, 2554, 117, 2429, 2476, 489, 1876, 74, 1841, 1889, 400, 1752, 770, 1504, 2268, 995, 974, 787, 1071, 1831, 2549, 1120, 2336, 876, 1886, 2576, 670, 1149, 1670, 1639, 444, 2053, 236, 1627, 1508, 187, 1251, 2044, 1421, 1813, 2154, 2172, 472, 1542, 2022, 1413, 397, 1987, 1930, 1492, 1292, 2424, 183, 2393, 431, 2179, 167, 998, 1706, 1513, 1453, 1112, 671, 1907, 2458, 2223, 682, 1059, 815, 2174, 382, 2492, 1562, 2553, 1507, 255, 1903, 834, 53, 2311, 2180, 169, 209, 1204, 2306, 398, 1539, 190, 73, 211], _phantom: core::marker::PhantomData, }; pub(super) static LOWER_NAME_TO_IDX: PhfMap<[u8], u16> = PhfMap { key: 12913932095322966823, - disps: &[(0, 8), (0, 92), (0, 18), (0, 78), (0, 471), (0, 14), (0, 26), (0, 16), (0, 25), (0, 45), (0, 1), (0, 60), (0, 15), (0, 195), (0, 904), (0, 301), (0, 216), (0, 9), (0, 34), (0, 35), (0, 87), (0, 1), (0, 13), (0, 15), (0, 12), (0, 393), (0, 229), (0, 1), (0, 334), (0, 4), (0, 0), (0, 79), (0, 0), (0, 1), (0, 247), (0, 1), (0, 2), (0, 106), (0, 22), (0, 156), (0, 1), (0, 4), (0, 2), (0, 19), (0, 4), (0, 9), (0, 21), (0, 1), (0, 173), (0, 127), (0, 1), (0, 26), (0, 60), (0, 17), (0, 152), (0, 127), (0, 580), (0, 11), (0, 279), (0, 0), (0, 619), (0, 175), (0, 0), (0, 58), (0, 257), (0, 1), (0, 35), (0, 249), (0, 17), (0, 188), (0, 473), (0, 458), (0, 111), (0, 2), (0, 108), (0, 13), (0, 2), (0, 0), (0, 228), (0, 183), (0, 17), (0, 180), (0, 85), (0, 83), (0, 25), (0, 5), (0, 810), (0, 0), (0, 29), (0, 190), (0, 11), (0, 9), (0, 23), (0, 32), (0, 111), (0, 55), (0, 59), (0, 179), (0, 51), (0, 554), (0, 100), (0, 28), (0, 14), (0, 2), (0, 2), (0, 11), (0, 258), (0, 163), (0, 74), (0, 18), (0, 0), (0, 42), (0, 35), (0, 1), (0, 6), (0, 82), (0, 430), (0, 0), (0, 514), (0, 0), (0, 70), (0, 934), (0, 274), (0, 29), (0, 1), (0, 2), (0, 141), (0, 160), (0, 0), (0, 41), (0, 63), (0, 105), (0, 247), (0, 4), (0, 132), (0, 0), (0, 46), (0, 67), (0, 86), (0, 243), (0, 32), (0, 12), (0, 51), (0, 21), (0, 0), (0, 18), (0, 34), (0, 0), (0, 163), (0, 18), (0, 21), (0, 18), (0, 14), (0, 187), (0, 114), (0, 46), (0, 5), (0, 3), (0, 233), (0, 75), (0, 10), (0, 0), (0, 85), (0, 0), (0, 0), (0, 1), (0, 31), (0, 3), (0, 20), (0, 6), (0, 167), (0, 422), (0, 34), (0, 53), (0, 3), (0, 1214), (0, 34), (0, 5), (0, 1374), (0, 4), (0, 22), (0, 212), (0, 56), (0, 40), (0, 634), (0, 28), (0, 0), (0, 58), (0, 1), (0, 0), (0, 17), (0, 899), (0, 28), (0, 29), (0, 186), (0, 12), (0, 1), (0, 112), (0, 12), (0, 2), (0, 15), (0, 0), (0, 0), (0, 221), (0, 23), (0, 20), (0, 1), (0, 0), (0, 243), (0, 24), (0, 4), (0, 581), (0, 192), (0, 122), (0, 83), (0, 50), (0, 549), (0, 2), (0, 56), (0, 448), (0, 6), (0, 24), (0, 8), (0, 3), (0, 15), (0, 5), (0, 564), (0, 266), (0, 10), (0, 320), (0, 210), (0, 0), (0, 168), (0, 7), (0, 23), (0, 5), (0, 0), (0, 115), (0, 87), (0, 159), (0, 20), (0, 26), (0, 160), (0, 137), (0, 77), (0, 202), (0, 0), (0, 2128), (0, 229), (0, 1258), (0, 1), (0, 7), (0, 307), (0, 1), (0, 377), (0, 13), (0, 413), (0, 0), (0, 1386), (0, 0), (0, 4), (0, 1), (0, 4), (0, 2), (0, 147), (0, 61), (0, 1339), (0, 38), (0, 13), (0, 113), (0, 0), (0, 10), (0, 28), (0, 143), (0, 664), (0, 80), (0, 809), (0, 521), (0, 9), (0, 29), (0, 8), (0, 19), (0, 25), (0, 324), (0, 1179), (0, 225), (0, 13), (0, 3), (0, 18), (0, 41), (0, 0), (0, 350), (0, 39), (0, 93), (0, 2025), (0, 728), (0, 6), (0, 55), (0, 229), (0, 846), (0, 1090), (0, 765), (0, 26), (0, 488), (0, 399), (0, 1355), (0, 1346), (0, 974), (0, 12), (0, 81), (0, 37), (0, 1081), (0, 0), (0, 2), (0, 98), (0, 1), (0, 105), (0, 11), (0, 1), (0, 448), (0, 37), (0, 26), (1, 324), (0, 240), (0, 1322), (0, 0), (0, 58), (0, 37), (0, 140), (0, 25), (0, 113), (0, 1092), (0, 1285), (0, 190), (0, 5), (0, 333), (0, 2), (0, 870), (0, 490), (0, 0), (0, 0), (0, 181), (0, 441), (0, 946), (0, 58), (0, 15), (0, 1811), (0, 6), (0, 110), (0, 1004), (0, 42), (0, 113), (0, 95), (0, 43), (0, 466), (0, 1), (0, 11), (0, 2), (0, 173), (0, 1), (0, 847), (0, 144), (0, 108), (0, 0), (0, 61), (0, 952), (0, 1470), (0, 569), (0, 1581), (0, 1), (0, 20), (0, 0), (0, 9), (0, 85), (0, 4), (0, 10), (0, 0), (0, 123), (0, 77), (0, 0), (0, 3), (0, 276), (0, 113), (0, 1), (0, 1150), (0, 670), (0, 481), (2, 562), (0, 234), (0, 78), (0, 329), (0, 79), (0, 32), (0, 2), (0, 11), (0, 0), (0, 86), (0, 150), (0, 469), (0, 423), (0, 20), (0, 1490), (0, 1401), (0, 276), (3, 271), (0, 69), (0, 1277), (0, 1515), (0, 649), (0, 125), (1, 648), (1, 2094), (1, 449), (0, 1526), (0, 8), (0, 1659), (0, 317), (0, 811), (0, 1816), (0, 58), (0, 32), (0, 68), (0, 504), (0, 293), (0, 220), (0, 7), (0, 58), (0, 92), (0, 0), (0, 1031), (0, 47), (0, 0), (1, 82), (0, 176), (0, 0), (0, 39), (0, 902), (0, 35), (0, 292), (1, 46), (0, 56), (0, 179), (0, 118), (0, 93), (0, 13), (0, 673), (0, 3), (0, 2), (0, 706), (0, 2207), (0, 1), (0, 22), (1, 840), (0, 14), (0, 1571), (1, 491), (0, 476), (0, 3), (0, 1001), (0, 514), (0, 143), (0, 5), (0, 72), (0, 776), (0, 0), (0, 230), (0, 117), (0, 14), (0, 4), (0, 223), (0, 110), (0, 124), (0, 35), (0, 827), (1, 365), (1, 1398), (0, 4), (0, 1350), (0, 1392), (1, 1358), (1, 819), (4, 158), (0, 1026), (0, 2), (0, 43), (0, 111), (0, 92), (0, 118), (0, 107), (0, 960), (0, 63), (0, 0), (1, 1634), (0, 20), (0, 2), (0, 12), (0, 237), (0, 1086), (0, 154), (0, 47), (0, 43), (0, 27), (0, 13), (0, 41), (0, 54), (1, 899), (0, 2), (0, 15), (0, 2), (0, 17), (0, 2), (0, 16)], - map: &[92, 1880, 1301, 808, 1098, 949, 1907, 387, 785, 882, 2456, 1941, 2220, 1427, 1933, 2511, 2181, 1094, 2417, 2459, 992, 14, 834, 341, 839, 1165, 2251, 1380, 1998, 1256, 1283, 1260, 987, 1268, 1068, 897, 403, 193, 1869, 2039, 662, 2198, 1546, 996, 1136, 744, 1569, 1547, 437, 639, 934, 2190, 1577, 1325, 487, 2178, 2254, 1498, 1290, 1533, 1529, 2016, 70, 1119, 2328, 78, 1137, 1420, 1149, 1685, 399, 2031, 1278, 400, 384, 814, 2245, 674, 1397, 1418, 684, 1293, 1494, 1072, 813, 1123, 2287, 593, 2298, 1661, 706, 1799, 688, 1518, 2309, 769, 2347, 1266, 701, 397, 1019, 841, 189, 1282, 960, 1567, 2276, 913, 1989, 664, 1855, 900, 288, 2050, 23, 323, 2148, 1004, 1969, 175, 1854, 109, 779, 30, 2041, 658, 1686, 1226, 2503, 2028, 1332, 2117, 1338, 2460, 893, 974, 843, 933, 2346, 434, 2396, 1655, 764, 749, 1162, 989, 616, 1591, 565, 1585, 1364, 1653, 1005, 2546, 2216, 2262, 1537, 2556, 1253, 1043, 1073, 1991, 1986, 1360, 1650, 1680, 33, 657, 1848, 2337, 1927, 1640, 2124, 326, 1264, 2263, 2001, 956, 1355, 2327, 946, 2159, 2277, 610, 129, 2107, 1083, 752, 926, 1960, 618, 2566, 330, 1168, 719, 86, 405, 1827, 279, 2213, 2422, 2009, 2116, 629, 94, 2408, 1219, 599, 2135, 1365, 690, 1886, 1396, 2520, 2431, 1169, 827, 966, 911, 121, 276, 1022, 2330, 1538, 1932, 2475, 369, 2492, 607, 2258, 1029, 733, 1910, 1417, 2559, 2311, 2219, 1656, 2507, 687, 1515, 2024, 2171, 506, 2274, 183, 1045, 608, 1164, 2367, 1973, 1761, 2167, 2380, 874, 218, 1037, 2286, 412, 994, 1737, 401, 1832, 418, 961, 1582, 356, 1095, 685, 248, 496, 2455, 1859, 729, 1841, 1443, 676, 2240, 1344, 2482, 97, 1054, 998, 1394, 1889, 1295, 2430, 11, 909, 99, 1645, 332, 1146, 1663, 423, 921, 878, 1777, 1595, 96, 2170, 2271, 409, 2223, 181, 1125, 2283, 2226, 1839, 1192, 1979, 2543, 2324, 2358, 202, 1549, 1214, 1235, 1853, 1298, 1556, 2303, 2241, 1315, 772, 2139, 2426, 253, 876, 1837, 21, 720, 765, 1807, 2424, 265, 419, 856, 194, 1566, 917, 1118, 2227, 1254, 1598, 1036, 1326, 1010, 1074, 1903, 1608, 740, 131, 2173, 322, 2214, 1174, 1829, 488, 1333, 2176, 1914, 677, 1872, 1835, 1267, 1938, 703, 1620, 1719, 774, 100, 759, 1063, 1877, 844, 2409, 620, 983, 823, 1657, 872, 1673, 1901, 111, 2179, 2316, 334, 2501, 267, 773, 2150, 1637, 1361, 2356, 924, 1669, 382, 1187, 368, 2304, 928, 1275, 1831, 1316, 2202, 669, 2019, 1279, 416, 631, 295, 1025, 2405, 1395, 307, 2397, 1646, 2568, 1273, 1996, 188, 216, 606, 1370, 439, 1962, 840, 2054, 314, 1562, 79, 1312, 1542, 1557, 2161, 1918, 1815, 1066, 1970, 1252, 2470, 1335, 7, 1789, 864, 2144, 728, 173, 1304, 2022, 678, 2295, 125, 1521, 1296, 832, 1510, 348, 978, 2234, 505, 1945, 325, 2185, 1930, 2270, 2256, 429, 968, 2067, 858, 2142, 1683, 821, 110, 1177, 2130, 912, 18, 1184, 838, 2464, 480, 850, 2056, 2407, 1053, 2033, 132, 501, 2499, 2094, 361, 1988, 289, 973, 2111, 1237, 1638, 1531, 1902, 1392, 256, 1908, 770, 1964, 1092, 2359, 1660, 2065, 2011, 628, 1921, 1600, 601, 2119, 1329, 1888, 1102, 426, 2289, 2326, 1785, 2349, 12, 1003, 16, 2168, 1674, 828, 2541, 1820, 630, 1671, 1735, 1779, 1965, 859, 68, 944, 1175, 1588, 613, 1341, 2147, 2246, 1373, 1155, 2193, 1619, 667, 1922, 681, 2366, 1672, 2336, 1959, 1624, 2333, 66, 1067, 62, 1230, 2518, 2314, 2153, 754, 406, 1873, 1876, 172, 2461, 1376, 1371, 455, 2297, 1120, 2008, 2000, 560, 1834, 794, 187, 1868, 668, 1707, 1599, 990, 1152, 1103, 985, 905, 1681, 2547, 389, 1676, 802, 2221, 1618, 1439, 1753, 1105, 2393, 1895, 1630, 2548, 1250, 2133, 1339, 916, 1104, 1951, 1967, 615, 1667, 2453, 1512, 1445, 1221, 1323, 1842, 895, 2208, 2388, 1011, 1603, 716, 1575, 352, 855, 106, 2082, 622, 366, 1994, 128, 1194, 13, 1049, 2306, 1201, 2341, 1863, 1161, 1090, 2369, 73, 705, 1771, 2437, 783, 2494, 1309, 2496, 87, 328, 2081, 2174, 1350, 1643, 1958, 778, 2143, 2118, 1690, 1698, 736, 485, 1917, 1956, 918, 415, 1535, 941, 2497, 2138, 831, 1199, 1305, 1916, 1357, 440, 1429, 308, 805, 1111, 1849, 697, 2045, 2059, 2427, 1128, 2378, 730, 986, 2441, 1099, 1862, 799, 2052, 1292, 2420, 2343, 886, 1122, 1573, 1548, 1846, 1838, 2163, 862, 1977, 391, 1565, 1328, 939, 1140, 993, 445, 317, 1215, 29, 2515, 1555, 2233, 2313, 1076, 1017, 444, 1602, 1030, 964, 344, 548, 1191, 869, 1540, 1519, 2288, 1052, 182, 661, 2554, 715, 2206, 2187, 2505, 107, 393, 2123, 247, 2218, 1826, 1207, 1379, 1117, 1530, 1354, 507, 1543, 2320, 931, 623, 124, 1580, 2166, 185, 2473, 898, 1038, 1525, 1697, 2293, 633, 1501, 250, 350, 428, 1065, 1741, 2537, 2296, 2183, 1920, 1517, 1124, 2242, 2404, 902, 392, 1913, 1368, 2322, 1294, 1320, 1725, 892, 2146, 837, 763, 1723, 2375, 2064, 851, 842, 1196, 242, 2550, 771, 2360, 1113, 2467, 443, 76, 970, 1020, 707, 1186, 2425, 1891, 2265, 930, 927, 1100, 340, 626, 1381, 1172, 756, 663, 2037, 692, 1209, 972, 309, 1263, 1031, 1897, 1609, 450, 1527, 2032, 836, 2125, 1605, 2569, 2049, 498, 1769, 359, 857, 891, 691, 2523, 665, 2483, 2071, 493, 2565, 2308, 866, 327, 1348, 1393, 2524, 2555, 1915, 2259, 2457, 174, 1109, 215, 612, 717, 2540, 818, 1659, 2267, 1055, 2186, 260, 280, 1604, 2563, 2413, 1195, 1351, 27, 603, 1966, 509, 899, 293, 1856, 1337, 2003, 2472, 1288, 2030, 2331, 797, 2115, 1281, 923, 69, 32, 331, 1423, 117, 1899, 290, 1179, 807, 2047, 2301, 648, 741, 1852, 696, 1701, 2078, 494, 1954, 1745, 1217, 398, 2230, 2, 2025, 1987, 2101, 2463, 2062, 500, 1858, 2112, 199, 2384, 704, 1159, 1625, 2323, 114, 1317, 2361, 2086, 2443, 2018, 446, 1160, 1511, 1866, 192, 2090, 654, 2057, 2305, 1134, 1386, 244, 1689, 200, 1850, 2273, 2490, 2486, 2074, 2196, 1997, 2279, 591, 1825, 2180, 1419, 2275, 969, 2075, 1601, 65, 257, 1773, 1696, 739, 386, 1188, 1202, 914, 865, 761, 1805, 1641, 2562, 2558, 698, 2007, 2513, 318, 1408, 880, 2387, 492, 2448, 999, 2386, 2194, 2436, 1206, 743, 890, 1990, 875, 74, 2573, 1277, 758, 2452, 1327, 2043, 2571, 2395, 746, 315, 102, 2098, 795, 751, 1222, 1211, 126, 1926, 1218, 379, 1639, 1087, 1747, 2231, 1781, 860, 1000, 2175, 2102, 2013, 1763, 1232, 243, 1441, 1451, 845, 1154, 1302, 2272, 1629, 920, 2091, 2010, 625, 1541, 2225, 360, 2249, 1709, 1069, 2044, 757, 1592, 1666, 2368, 1238, 1583, 2103, 2545, 2222, 2097, 1062, 1822, 431, 1500, 766, 2005, 212, 937, 2516, 2140, 441, 1410, 28, 1878, 2177, 1225, 2530, 221, 2136, 2553, 635, 1023, 1289, 1015, 1824, 1860, 768, 1088, 402, 896, 1943, 2391, 1033, 745, 367, 2197, 1502, 2400, 2026, 790, 1644, 2403, 2321, 1307, 1536, 320, 2371, 1694, 1018, 2238, 19, 644, 2491, 2093, 1173, 2034, 1713, 643, 1353, 1358, 731, 377, 0, 2110, 702, 2489, 682, 666, 2484, 82, 364, 1291, 2261, 1240, 640, 963, 1318, 1437, 2476, 2204, 167, 1975, 638, 190, 693, 2053, 948, 1367, 1874, 1883, 2406, 2158, 1212, 2415, 2549, 1995, 2429, 1539, 1900, 1516, 2500, 1110, 1261, 737, 1106, 776, 940, 1048, 1, 313, 2048, 1865, 1665, 1892, 1070, 157, 2376, 711, 1425, 1554, 1021, 1115, 1819, 424, 1271, 306, 2015, 1833, 95, 3, 557, 2002, 722, 810, 2080, 1617, 1929, 962, 2542, 1678, 1071, 971, 292, 634, 2468, 2521, 621, 854, 979, 2508, 594, 2021, 885, 2525, 1611, 2435, 919, 2029, 1971, 867, 71, 2363, 988, 1593, 90, 1692, 2315, 1743, 1347, 479, 2290, 929, 952, 1775, 26, 93, 1648, 977, 451, 1504, 495, 1060, 945, 1107, 1241, 2572, 2536, 714, 1980, 1157, 1044, 556, 25, 191, 2522, 2073, 1200, 10, 894, 2152, 2381, 1560, 1731, 1086, 1505, 1503, 1677, 407, 2077, 1642, 1180, 806, 1939, 2085, 2480, 646, 1522, 2205, 1121, 2061, 180, 169, 2292, 675, 2243, 255, 1303, 2325, 2092, 1811, 1553, 689, 179, 1684, 2390, 1270, 2317, 1558, 2109, 414, 2066, 1581, 1034, 241, 1284, 222, 951, 2432, 1080, 1985, 2278, 955, 1795, 907, 1108, 112, 1132, 2451, 481, 1144, 453, 1950, 1597, 781, 2209, 2257, 1236, 1590, 1047, 2338, 1906, 1258, 2570, 2538, 2345, 2481, 748, 376, 2294, 1787, 454, 596, 908, 624, 653, 555, 2172, 1613, 2471, 177, 1085, 2195, 1319, 119, 1944, 2362, 410, 85, 559, 2106, 456, 1308, 1014, 1909, 1578, 637, 1544, 2127, 316, 2354, 115, 708, 2199, 958, 371, 789, 938, 1968, 1864, 2228, 2574, 24, 1158, 642, 5, 2551, 592, 2439, 383, 563, 1506, 122, 442, 266, 1362, 614, 1982, 1334, 251, 1340, 2260, 1081, 2169, 2149, 2493, 1205, 953, 63, 2487, 1449, 1024, 1272, 656, 1759, 1844, 2203, 1729, 1628, 2383, 712, 562, 680, 1400, 915, 2428, 732, 1809, 2512, 2527, 1026, 2438, 219, 1528, 1276, 564, 1040, 170, 1828, 2105, 1352, 1496, 105, 1757, 604, 1274, 1797, 723, 2068, 1651, 2509, 385, 2160, 747, 2418, 2036, 1904, 1911, 861, 1840, 1372, 4, 130, 1324, 1223, 2488, 508, 1249, 1587, 2128, 1983, 2266, 329, 822, 1078, 611, 887, 2083, 791, 617, 649, 721, 2526, 213, 650, 186, 1433, 2302, 1220, 2069, 1234, 1545, 1963, 2096, 724, 816, 22, 762, 1654, 2252, 196, 2495, 1183, 1170, 1402, 884, 671, 1039, 1182, 1925, 2344, 2410, 2307, 1387, 2401, 1755, 1513, 2051, 1213, 889, 1101, 430, 2334, 619, 2250, 786, 980, 1552, 2038, 1082, 1032, 1670, 1526, 1596, 365, 1974, 1817, 1693, 1717, 1955, 1384, 1422, 1242, 1594, 2087, 725, 447, 1919, 310, 1391, 2373, 1259, 1905, 2419, 1227, 1632, 1636, 2421, 510, 1621, 1721, 849, 1246, 31, 679, 2389, 6, 2035, 1948, 1830, 245, 1262, 2099, 1231, 2070, 17, 710, 1836, 2355, 651, 1658, 1002, 1299, 489, 1097, 1008, 2474, 1233, 1946, 922, 2253, 1633, 2370, 2564, 1453, 975, 380, 2229, 491, 2310, 1751, 388, 1568, 249, 2126, 1715, 275, 1942, 2535, 1224, 1972, 378, 2447, 2215, 2239, 2352, 1016, 1077, 1153, 627, 812, 1248, 1871, 976, 809, 1870, 411, 1286, 2382, 75, 947, 311, 2531, 1197, 1145, 1431, 1675, 72, 2104, 396, 1576, 176, 829, 647, 349, 2423, 1634, 1691, 2392, 2088, 1992, 2020, 2211, 1497, 695, 1586, 395, 1652, 1388, 321, 486, 449, 2269, 1893, 61, 659, 2377, 417, 1061, 1579, 2416, 333, 995, 422, 1064, 2502, 1027, 1130, 1322, 2312, 1564, 184, 1057, 2398, 363, 1928, 427, 2079, 438, 595, 2284, 1574, 2154, 686, 2478, 104, 950, 2058, 1702, 1514, 1385, 801, 632, 2533, 1993, 2122, 2072, 1349, 1421, 767, 1163, 1342, 1415, 1251, 683, 1051, 1216, 1495, 2498, 1156, 1185, 824, 2577, 2282, 1142, 1257, 504, 1412, 2411, 798, 1058, 1265, 2004, 883, 1331, 1981, 274, 1126, 1112, 9, 220, 1091, 2374, 1898, 281, 2156, 718, 1375, 1507, 2207, 2236, 2182, 967, 1940, 1198, 499, 877, 811, 1363, 342, 2162, 1885, 432, 1627, 1204, 2339, 319, 1791, 2145, 2089, 1042, 1520, 1336, 2157, 694, 1934, 735, 2217, 2132, 670, 2184, 2244, 1947, 1703, 2200, 1499, 2264, 2329, 1056, 1612, 1610, 425, 1881, 1143, 645, 903, 792, 925, 1976, 171, 15, 1957, 935, 2394, 1181, 254, 80, 804, 436, 2365, 1006, 755, 8, 788, 881, 1508, 1668, 1821, 1616, 2210, 2578, 936, 1166, 2281, 2335, 246, 2212, 775, 2561, 1563, 1884, 1096, 1343, 846, 362, 1572, 1924, 2466, 88, 2444, 503, 2445, 2517, 2440, 1280, 2027, 1369, 1705, 959, 1041, 408, 726, 2458, 1178, 817, 123, 490, 1509, 997, 1208, 600, 954, 1310, 2529, 421, 641, 1245, 277, 984, 2121, 2575, 2544, 1823, 2224, 223, 2137, 1141, 1551, 2450, 1688, 2485, 1679, 738, 1749, 981, 1890, 2567, 34, 879, 1584, 1984, 1887, 83, 1176, 372, 871, 2120, 1050, 833, 197, 2188, 1923, 1374, 291, 2192, 2063, 943, 2351, 1534, 1649, 558, 1867, 2465, 1857, 1699, 1845, 2040, 2319, 1937, 2412, 1075, 609, 2519, 561, 848, 1623, 1978, 910, 2385, 2528, 982, 483, 345, 2155, 2434, 1404, 448, 2201, 1635, 700, 420, 1189, 1313, 942, 1306, 734, 2164, 1359, 2131, 2379, 1382, 2469, 1093, 502, 2280, 2095, 1297, 127, 965, 2023, 1524, 787, 1012, 1255, 1167, 77, 1447, 742, 2141, 2557, 2165, 1287, 91, 598, 904, 1664, 1114, 1244, 1733, 819, 825, 1330, 198, 597, 2299, 554, 636, 1366, 343, 1847, 2232, 2235, 358, 1059, 1949, 1843, 901, 1171, 1851, 2454, 1631, 2006, 1615, 803, 1424, 2108, 2506, 2017, 888, 1378, 660, 1999, 1377, 67, 932, 713, 780, 2247, 2318, 1398, 1626, 991, 602, 1589, 1783, 782, 1356, 1532, 103, 1952, 1435, 346, 381, 263, 2134, 2248, 2552, 553, 1389, 2477, 178, 1695, 20, 1321, 1614, 2100, 452, 870, 605, 98, 1046, 852, 1570, 1116, 1190, 957, 370, 195, 2402, 796, 484, 1311, 1084, 2372, 118, 1228, 1861, 1622, 2462, 2300, 1682, 324, 1089, 168, 84, 64, 2342, 81, 2357, 108, 1210, 2113, 1247, 2534, 497, 1647, 2255, 2340, 1894, 120, 1079, 413, 2151, 2399, 863, 2114, 2191, 1243, 1455, 1882, 312, 820, 482, 835, 760, 672, 1203, 224, 2510, 1229, 2446, 116, 1875, 1571, 2012, 793, 217, 2479, 1269, 1961, 355, 1607, 2268, 906, 800, 1550, 753, 433, 1803, 784, 1912, 2560, 1936, 2332, 655, 815, 2014, 1346, 873, 1383, 1711, 1239, 2433, 750, 1606, 1739, 264, 830, 2514, 2084, 1001, 709, 2046, 2414, 1138, 1523, 1013, 394, 390, 1931, 2504, 351, 1561, 2348, 1687, 1793, 1028, 853, 1662, 1035, 357, 2350, 404, 1390, 652, 2364, 1314, 1935, 2532, 826, 1345, 1879, 2129, 252, 101, 1193, 2076, 1813, 1896, 1559, 2353, 673, 2055, 2285, 1727, 2060, 2539, 1700, 1801, 2042, 89, 2442, 113, 1285, 278, 214, 847, 2189, 699, 1767, 2291, 435, 1765, 1300, 347, 2237, 727, 868, 2576, 1704, 777, 1953], + disps: &[(0, 79), (0, 24), (0, 5), (0, 158), (0, 59), (0, 7), (0, 14), (0, 63), (0, 180), (0, 93), (0, 444), (0, 200), (0, 3), (0, 179), (0, 14), (0, 225), (0, 18), (0, 0), (0, 59), (0, 29), (0, 421), (0, 2), (0, 5), (0, 18), (0, 40), (0, 56), (0, 25), (0, 0), (0, 582), (0, 1), (0, 2), (0, 568), (0, 3), (0, 2), (0, 21), (0, 12), (0, 2), (0, 150), (0, 259), (0, 140), (0, 5), (0, 0), (0, 1), (0, 22), (0, 23), (0, 796), (0, 5), (0, 3), (0, 19), (0, 106), (0, 23), (0, 128), (0, 39), (0, 655), (0, 62), (0, 215), (0, 76), (0, 1), (0, 177), (0, 85), (0, 37), (0, 272), (0, 40), (0, 162), (0, 339), (0, 8), (0, 143), (0, 282), (0, 150), (0, 730), (0, 235), (0, 337), (0, 361), (0, 14), (0, 85), (0, 95), (0, 32), (0, 1), (0, 127), (0, 39), (0, 37), (0, 342), (0, 707), (0, 541), (0, 25), (0, 3), (0, 472), (0, 2), (0, 40), (0, 666), (0, 10), (0, 9), (0, 3), (0, 5), (0, 112), (0, 456), (0, 28), (0, 47), (0, 16), (0, 716), (0, 26), (0, 43), (0, 18), (0, 9), (0, 10), (0, 166), (0, 34), (0, 78), (0, 72), (0, 55), (0, 0), (0, 78), (0, 318), (0, 0), (0, 15), (0, 181), (0, 205), (0, 0), (0, 102), (0, 1), (0, 43), (0, 44), (0, 58), (0, 29), (0, 0), (0, 1), (0, 60), (0, 63), (0, 0), (0, 6), (0, 14), (0, 823), (0, 218), (0, 67), (0, 8), (0, 0), (0, 202), (0, 46), (0, 18), (0, 724), (0, 229), (0, 2), (0, 93), (0, 66), (0, 0), (0, 2), (0, 27), (0, 0), (0, 81), (0, 499), (0, 1), (0, 350), (0, 717), (0, 11), (0, 491), (0, 220), (0, 1), (0, 9), (0, 9), (0, 105), (0, 16), (0, 2), (0, 97), (0, 0), (0, 6), (0, 10), (0, 75), (0, 10), (0, 4), (0, 23), (0, 1177), (0, 327), (0, 149), (0, 6), (0, 34), (0, 248), (0, 206), (0, 15), (0, 114), (0, 5), (0, 158), (0, 111), (0, 21), (0, 695), (0, 51), (0, 33), (0, 0), (0, 107), (0, 16), (0, 0), (0, 193), (0, 173), (0, 226), (0, 71), (0, 128), (0, 8), (0, 8), (0, 383), (0, 113), (0, 4), (0, 588), (0, 1), (0, 118), (0, 96), (0, 89), (0, 15), (0, 8), (0, 2), (0, 90), (0, 10), (0, 18), (0, 320), (0, 664), (0, 33), (0, 22), (0, 18), (0, 45), (0, 2), (0, 66), (0, 64), (0, 11), (0, 141), (0, 2), (0, 2), (0, 70), (0, 22), (0, 483), (0, 205), (0, 0), (0, 36), (0, 344), (0, 18), (0, 169), (0, 0), (0, 141), (0, 2), (0, 6), (0, 686), (0, 19), (0, 1358), (0, 7), (0, 8), (0, 674), (0, 72), (0, 8), (0, 81), (0, 0), (0, 966), (0, 181), (0, 377), (0, 1), (0, 0), (0, 186), (0, 1), (0, 827), (0, 5), (0, 883), (0, 2), (0, 378), (0, 3), (0, 2), (0, 202), (0, 27), (0, 4), (0, 627), (0, 509), (0, 452), (0, 253), (0, 0), (0, 1), (0, 0), (0, 5), (0, 44), (0, 112), (0, 532), (0, 6), (0, 155), (0, 296), (0, 11), (0, 30), (0, 0), (0, 0), (0, 206), (0, 356), (0, 255), (0, 825), (0, 11), (0, 27), (0, 232), (0, 8), (0, 0), (0, 184), (0, 17), (0, 35), (0, 794), (0, 362), (0, 5), (0, 16), (0, 21), (0, 1011), (0, 81), (0, 109), (0, 91), (0, 242), (0, 788), (0, 936), (0, 130), (0, 1925), (0, 6), (0, 144), (0, 1312), (0, 1421), (0, 1), (1, 0), (0, 0), (0, 0), (0, 418), (0, 0), (0, 11), (0, 10), (0, 21), (0, 6), (0, 346), (0, 483), (0, 802), (0, 0), (1, 8), (0, 9), (0, 973), (0, 6), (0, 270), (0, 73), (1, 229), (0, 55), (0, 8), (0, 1990), (0, 7), (0, 1030), (0, 993), (0, 0), (0, 39), (0, 16), (0, 451), (0, 443), (0, 8), (0, 144), (0, 269), (0, 37), (0, 35), (0, 672), (0, 3), (0, 908), (0, 201), (0, 220), (0, 54), (0, 22), (0, 39), (0, 21), (0, 42), (0, 140), (0, 375), (0, 52), (0, 75), (0, 614), (1, 1745), (0, 531), (0, 1968), (1, 2037), (0, 878), (0, 0), (0, 29), (0, 1), (0, 1), (0, 277), (0, 2), (0, 1), (0, 89), (0, 629), (0, 109), (0, 5), (0, 2), (0, 304), (0, 165), (0, 57), (1, 2095), (0, 1781), (0, 139), (1, 855), (0, 105), (0, 48), (0, 23), (0, 1857), (0, 346), (0, 6), (0, 195), (0, 1), (0, 157), (0, 286), (0, 930), (0, 119), (0, 73), (1, 499), (0, 1050), (0, 14), (0, 118), (0, 366), (0, 252), (1, 542), (0, 16), (0, 749), (0, 687), (0, 894), (1, 63), (0, 53), (0, 55), (0, 710), (0, 5), (0, 982), (0, 1935), (0, 137), (0, 19), (0, 28), (0, 671), (0, 471), (0, 1281), (0, 6), (0, 424), (0, 180), (0, 0), (0, 1341), (0, 29), (0, 0), (0, 975), (0, 19), (0, 0), (0, 91), (0, 655), (0, 4), (0, 32), (0, 765), (0, 22), (0, 1112), (0, 39), (0, 2171), (0, 0), (0, 195), (0, 0), (0, 0), (0, 1520), (0, 681), (0, 9), (0, 16), (0, 2265), (0, 0), (1, 246), (6, 90), (0, 2132), (0, 0), (0, 1123), (0, 1136), (0, 3), (0, 15), (0, 1), (1, 1914), (0, 12), (0, 70), (0, 178), (0, 1), (0, 19), (0, 23), (0, 261), (0, 187), (0, 180), (0, 130), (0, 786), (1, 324), (0, 3), (7, 333), (0, 1771), (1, 2147), (0, 1688), (1, 1600), (0, 31), (0, 35), (0, 28), (0, 34), (0, 16), (0, 61), (0, 44), (0, 1690), (0, 36), (0, 1), (4, 2207), (0, 33), (0, 0), (0, 852), (0, 1456), (1, 1442), (0, 216), (0, 0), (0, 15), (0, 51), (0, 21), (0, 64), (0, 90), (0, 1393), (0, 0), (0, 6), (0, 3), (0, 6), (0, 4), (0, 71)], + map: &[1095, 2515, 2597, 318, 1513, 265, 966, 1292, 418, 1533, 2264, 191, 1429, 934, 910, 1260, 2206, 1326, 246, 2524, 1957, 1052, 2189, 866, 2509, 601, 281, 1390, 1200, 2256, 644, 1998, 2394, 1614, 2241, 313, 777, 2302, 2106, 2199, 928, 2539, 2408, 2107, 1651, 187, 1311, 452, 2061, 1092, 2273, 1811, 1588, 875, 310, 2417, 1157, 2336, 1118, 1016, 1632, 2248, 2150, 435, 1951, 2000, 950, 847, 1122, 2490, 725, 2608, 2164, 1105, 1916, 656, 2522, 1021, 915, 2429, 2480, 786, 1556, 2483, 876, 1679, 793, 809, 70, 1643, 1921, 681, 1056, 1873, 1233, 1895, 2037, 2552, 690, 2340, 1191, 2156, 879, 1593, 984, 1992, 2135, 1300, 1906, 445, 1451, 2406, 1243, 1313, 443, 960, 1304, 177, 2465, 402, 1370, 498, 1091, 292, 63, 127, 779, 561, 1982, 1315, 1526, 1567, 2367, 954, 2341, 1541, 1847, 1242, 622, 2517, 760, 2103, 1279, 1963, 2526, 1330, 746, 1817, 1410, 1763, 1248, 1991, 2500, 2339, 890, 2370, 2060, 2017, 1579, 2321, 2478, 1497, 1123, 623, 2562, 496, 743, 800, 1298, 1189, 2414, 1661, 556, 1361, 2284, 2272, 2384, 1881, 2624, 705, 1933, 1274, 974, 1179, 654, 1322, 2080, 855, 2253, 169, 647, 244, 841, 957, 64, 2609, 333, 755, 199, 742, 557, 2482, 894, 923, 1848, 117, 2066, 168, 2563, 555, 2472, 1366, 1844, 1395, 2130, 1017, 2327, 662, 2322, 945, 861, 1900, 712, 630, 2364, 1605, 1629, 2299, 1342, 738, 2330, 1246, 364, 1592, 419, 715, 2612, 437, 1257, 170, 1026, 1098, 2507, 878, 1205, 902, 2126, 388, 1877, 1890, 2545, 1240, 2551, 1980, 1769, 176, 2109, 1707, 2388, 711, 2519, 1518, 895, 278, 2462, 1307, 1907, 1860, 1528, 1190, 1698, 2541, 2448, 604, 2508, 72, 1582, 103, 1959, 308, 1301, 2035, 664, 1795, 484, 2607, 1502, 686, 379, 2003, 2142, 1185, 1636, 131, 1684, 1498, 991, 362, 93, 1938, 1334, 953, 1981, 1929, 603, 2537, 84, 1319, 1878, 688, 1683, 74, 888, 609, 672, 1839, 1692, 2215, 2604, 17, 2116, 970, 1697, 635, 2139, 1089, 2183, 1947, 2065, 2023, 1266, 2560, 2528, 280, 2617, 1187, 2049, 2249, 2006, 2338, 769, 2459, 174, 645, 1548, 2502, 1604, 295, 762, 1514, 716, 1362, 2091, 2412, 600, 980, 198, 2226, 1000, 935, 1875, 2436, 2198, 1886, 2475, 250, 1677, 2352, 732, 2099, 1771, 1574, 2572, 1202, 1329, 2229, 2606, 2179, 2019, 2521, 1317, 1223, 763, 343, 806, 91, 1134, 1602, 252, 1755, 248, 1852, 289, 959, 398, 1047, 349, 599, 1419, 739, 812, 1523, 766, 1252, 1584, 119, 1065, 958, 1288, 2110, 2188, 290, 2063, 1855, 31, 104, 1876, 908, 1557, 1902, 216, 1914, 941, 2395, 2168, 1953, 1638, 965, 1423, 186, 1383, 1693, 757, 195, 188, 989, 2075, 823, 1863, 872, 71, 593, 2456, 1915, 1059, 961, 1923, 2030, 411, 1293, 2181, 2041, 1020, 1235, 1960, 447, 2464, 2232, 615, 1379, 2128, 1333, 1505, 2289, 1858, 924, 2346, 444, 1885, 2310, 1058, 1103, 1048, 2530, 842, 2598, 2036, 829, 2166, 2533, 728, 2325, 642, 1609, 2422, 2317, 1025, 2224, 2546, 1853, 2059, 1827, 2567, 1224, 2356, 1820, 405, 482, 2377, 922, 2160, 2365, 1212, 1586, 1253, 2114, 260, 2514, 736, 2278, 606, 7, 2258, 708, 1837, 1954, 1067, 1160, 1729, 714, 616, 1074, 607, 2266, 1136, 1072, 1271, 611, 1577, 2261, 2496, 776, 1641, 1117, 2143, 2497, 2086, 1046, 2129, 1499, 123, 640, 2267, 563, 1297, 2435, 2212, 2389, 366, 202, 1173, 2122, 1254, 2138, 2416, 1613, 1889, 1924, 863, 1640, 1529, 1658, 1869, 2083, 1433, 560, 2391, 1402, 1578, 696, 1045, 2315, 1158, 1346, 2385, 1616, 1994, 679, 1036, 1536, 1022, 1637, 2046, 1675, 2148, 1357, 410, 2323, 2178, 1418, 1787, 1188, 2211, 2308, 1238, 1988, 1093, 883, 983, 2430, 1507, 554, 896, 501, 1899, 1394, 1068, 2576, 1145, 351, 480, 1014, 1354, 1443, 1504, 1823, 2005, 414, 827, 1663, 1838, 677, 128, 1887, 1291, 946, 404, 2247, 1276, 2274, 2271, 778, 1251, 446, 675, 1652, 1711, 2382, 1375, 885, 2020, 2516, 340, 610, 975, 1445, 671, 668, 1070, 1927, 612, 1210, 1668, 1630, 1503, 455, 1971, 2026, 1813, 1270, 251, 925, 853, 321, 1974, 420, 937, 178, 2245, 2557, 930, 255, 2054, 2614, 1132, 1753, 1603, 1897, 1175, 1965, 1146, 1580, 2534, 1561, 927, 1206, 673, 172, 2366, 1006, 327, 2115, 83, 955, 1789, 1107, 372, 1737, 730, 1198, 1013, 2262, 323, 106, 2187, 750, 825, 506, 2279, 2040, 2544, 1917, 1631, 275, 396, 1635, 495, 2039, 288, 2162, 73, 1910, 692, 1622, 1866, 180, 1884, 880, 1611, 77, 500, 2298, 1650, 2313, 971, 403, 944, 976, 2548, 2098, 2161, 2449, 1249, 1194, 2112, 1265, 756, 185, 1080, 1069, 1055, 1723, 1032, 1050, 801, 859, 1662, 2481, 594, 830, 808, 317, 2208, 8, 2511, 1937, 703, 833, 2246, 497, 782, 1765, 112, 1012, 1843, 2525, 193, 2287, 869, 2291, 453, 562, 425, 1066, 1338, 2460, 826, 110, 4, 2100, 2078, 1168, 737, 363, 2450, 1424, 940, 2376, 2234, 2113, 1042, 624, 257, 2270, 860, 2182, 1540, 929, 1608, 2028, 1027, 434, 851, 2469, 658, 2145, 2077, 2090, 1316, 2218, 1620, 1654, 1296, 1883, 1759, 1939, 802, 770, 2084, 810, 1023, 2210, 753, 1349, 918, 1083, 1955, 1833, 215, 619, 1694, 1258, 722, 1871, 2602, 2553, 1670, 346, 438, 2282, 2368, 1653, 1872, 1024, 834, 2311, 867, 704, 392, 448, 2579, 2136, 952, 1922, 2069, 2072, 2326, 889, 306, 1547, 1686, 407, 2380, 1665, 1420, 1615, 1537, 1261, 2619, 963, 2216, 936, 1256, 1870, 2155, 1219, 1495, 360, 2202, 559, 2476, 1167, 819, 314, 2255, 2102, 1672, 820, 1039, 2595, 1259, 399, 2244, 1437, 1101, 428, 1562, 846, 747, 1989, 175, 1453, 951, 1018, 2231, 780, 1033, 489, 1934, 735, 367, 1415, 1090, 2147, 2281, 2269, 1239, 1109, 1805, 1891, 1040, 1303, 1807, 2176, 805, 1398, 2094, 274, 1182, 660, 740, 1727, 1932, 835, 450, 2268, 1783, 2015, 1565, 693, 329, 2348, 1172, 182, 2446, 2373, 1867, 2180, 854, 1669, 614, 748, 2324, 1733, 1165, 1011, 325, 1353, 2431, 916, 1835, 490, 932, 697, 912, 1087, 173, 1865, 2228, 850, 1363, 365, 2423, 1931, 479, 2513, 2455, 436, 1061, 2345, 494, 1156, 0, 1373, 2236, 1879, 1549, 1267, 1255, 1124, 2332, 2318, 2285, 2316, 1624, 331, 754, 1696, 1715, 2343, 1221, 1137, 2088, 1441, 1337, 2125, 2600, 2076, 1535, 439, 1606, 2328, 990, 1825, 324, 2547, 1228, 1908, 1735, 2575, 2067, 221, 2251, 1037, 1926, 1896, 253, 2558, 1192, 2167, 347, 1985, 376, 502, 2611, 625, 1217, 2470, 1888, 397, 789, 2048, 731, 2529, 2488, 1049, 1946, 1380, 277, 1305, 2132, 1551, 676, 1905, 870, 1215, 89, 633, 316, 9, 326, 817, 442, 695, 499, 1053, 1201, 2123, 2192, 2494, 1262, 799, 27, 1913, 627, 2314, 2555, 997, 2586, 920, 483, 1174, 1717, 1521, 2004, 1244, 2152, 1494, 901, 1226, 1079, 1114, 1277, 427, 2573, 1367, 2007, 1894, 192, 1868, 2200, 1824, 2467, 2568, 2047, 947, 759, 254, 1850, 1356, 1515, 488, 2171, 1815, 2052, 1572, 618, 1639, 2486, 1950, 1646, 1218, 1088, 2569, 2201, 454, 1690, 2133, 2542, 2204, 1500, 2117, 1936, 2360, 2276, 758, 2101, 911, 564, 1376, 795, 224, 691, 212, 12, 2301, 2021, 699, 2252, 2439, 380, 2022, 948, 1377, 1743, 2111, 1617, 803, 2527, 837, 1973, 377, 1229, 1576, 1571, 1082, 1341, 1509, 2585, 2070, 1553, 1949, 548, 1084, 2531, 2451, 357, 2474, 2174, 1739, 719, 2042, 2591, 2033, 1695, 1560, 2437, 2554, 1290, 2334, 1034, 1970, 2175, 2219, 96, 1197, 1064, 24, 2596, 646, 1166, 939, 1979, 1104, 75, 395, 1435, 1345, 2506, 2583, 1961, 1203, 773, 591, 2599, 2280, 109, 2549, 2009, 30, 222, 2625, 2477, 1371, 2093, 1880, 1757, 1601, 2387, 988, 978, 1903, 426, 2230, 508, 1110, 2473, 2108, 1633, 61, 1352, 1269, 2618, 1966, 2441, 2032, 2397, 1425, 1773, 2194, 2170, 378, 2424, 14, 1534, 813, 1987, 1882, 1942, 828, 1208, 771, 416, 312, 1382, 1169, 727, 1268, 1859, 1781, 1015, 440, 942, 1674, 1648, 792, 1340, 1193, 1664, 115, 1519, 621, 85, 120, 1044, 2610, 412, 818, 2351, 1568, 1761, 2532, 1666, 1673, 592, 1972, 729, 2381, 1829, 2029, 2355, 2045, 1828, 1596, 985, 1250, 194, 1094, 845, 1555, 768, 1060, 987, 962, 1081, 921, 678, 2184, 775, 1550, 2053, 2440, 2359, 1977, 2342, 2543, 1527, 1359, 798, 249, 1520, 1930, 1516, 1385, 29, 393, 1856, 2203, 1836, 653, 628, 1623, 2195, 821, 1522, 1612, 433, 98, 1309, 967, 1587, 832, 291, 1422, 1834, 2196, 2453, 1849, 2055, 2421, 196, 223, 643, 2259, 1348, 2012, 811, 558, 2540, 1031, 2443, 415, 124, 3, 385, 608, 1184, 905, 5, 1320, 2089, 886, 1920, 409, 2288, 698, 785, 1100, 1573, 2503, 1431, 2238, 2518, 1530, 839, 1128, 342, 2292, 1999, 1958, 1649, 2057, 1785, 790, 1912, 674, 1542, 2372, 1851, 1517, 1713, 893, 2504, 2393, 2616, 891, 129, 626, 491, 1097, 787, 1421, 1948, 2564, 1199, 972, 451, 1213, 764, 1619, 2419, 2243, 1703, 2205, 2593, 1928, 88, 1264, 1106, 79, 1404, 2260, 2242, 449, 184, 2587, 1945, 2237, 2398, 328, 1678, 219, 1412, 2434, 2357, 749, 1832, 2222, 2559, 2159, 717, 2165, 2013, 2304, 1355, 909, 906, 355, 1005, 213, 836, 1003, 1552, 2144, 276, 1164, 2362, 634, 2104, 2277, 1599, 1681, 256, 784, 1532, 1845, 1344, 2056, 1841, 700, 1038, 595, 2399, 1589, 1607, 263, 2550, 1389, 1076, 804, 1634, 605, 1688, 1302, 685, 919, 1408, 2571, 649, 116, 2233, 596, 1791, 432, 1339, 1285, 1659, 2, 718, 2127, 1940, 341, 1295, 2580, 422, 2603, 2445, 667, 1417, 2570, 2484, 2169, 1073, 881, 293, 1911, 986, 1831, 2240, 2151, 125, 2401, 765, 1306, 1368, 1154, 1195, 884, 1204, 1990, 2499, 167, 408, 2092, 877, 938, 761, 1935, 2172, 90, 1299, 1125, 1141, 2158, 1689, 493, 1358, 81, 2024, 1245, 1667, 1102, 2590, 1247, 481, 701, 6, 2577, 969, 1554, 2432, 638, 2223, 361, 2137, 2058, 981, 1511, 345, 2371, 2034, 2363, 126, 1263, 752, 1343, 992, 1691, 2250, 2581, 1035, 822, 1365, 1280, 28, 94, 620, 2331, 1741, 1278, 2263, 868, 370, 1595, 669, 1181, 2296, 1978, 1030, 2613, 2396, 639, 2418, 1078, 1138, 1779, 1155, 1289, 1077, 330, 2068, 1506, 1685, 814, 417, 2620, 1862, 505, 1063, 431, 1237, 1126, 1898, 429, 791, 843, 2405, 2592, 1892, 122, 2294, 1286, 86, 706, 871, 1655, 1854, 1230, 62, 865, 130, 687, 1918, 1447, 401, 794, 2062, 1968, 553, 67, 650, 1512, 1308, 995, 1140, 917, 903, 358, 1984, 2621, 2463, 2146, 102, 598, 844, 1702, 1621, 907, 857, 2411, 1283, 1656, 1842, 1159, 751, 1975, 2335, 1108, 1227, 1186, 2213, 441, 2031, 2320, 1993, 197, 350, 1531, 492, 1387, 1347, 1004, 973, 1116, 657, 21, 734, 1956, 2081, 2447, 1350, 949, 101, 2193, 157, 926, 413, 2425, 1369, 2561, 386, 2400, 1393, 389, 1149, 2420, 709, 998, 1893, 1751, 2427, 2141, 2333, 1119, 15, 334, 1397, 1962, 1597, 663, 66, 2044, 2014, 2018, 1216, 2523, 2512, 2221, 783, 745, 507, 2442, 1874, 964, 2493, 772, 597, 76, 19, 2403, 2498, 1777, 2601, 332, 2254, 882, 1028, 887, 1318, 1161, 2458, 1381, 190, 2286, 2157, 1995, 2134, 1941, 655, 1585, 858, 1559, 2096, 2536, 631, 1170, 2163, 181, 1539, 1952, 1284, 1057, 1086, 390, 796, 1324, 694, 2605, 1275, 26, 368, 34, 2479, 111, 1327, 2275, 767, 659, 1904, 956, 87, 2409, 1071, 69, 504, 78, 1563, 2185, 1610, 2369, 824, 1524, 1682, 1826, 1231, 1001, 1575, 1919, 214, 864, 108, 774, 309, 2344, 1386, 2520, 1627, 1822, 788, 2121, 2177, 1618, 2149, 1388, 1943, 2468, 1964, 1075, 382, 904, 1372, 2594, 1545, 456, 2378, 2295, 2404, 637, 2584, 1775, 848, 2257, 1310, 2444, 2307, 2153, 406, 1176, 1719, 1043, 1427, 2623, 897, 486, 200, 2290, 993, 2353, 1642, 661, 2535, 2002, 16, 1232, 2038, 602, 641, 2452, 1594, 1115, 1111, 1374, 2350, 1144, 2293, 1321, 2209, 1041, 2008, 2589, 2383, 179, 1767, 849, 1171, 2051, 2329, 2087, 1328, 65, 996, 2043, 2471, 1986, 856, 1644, 2118, 1967, 1861, 247, 1113, 1830, 852, 1809, 2489, 2615, 509, 1196, 2016, 322, 652, 2154, 23, 689, 220, 665, 1997, 2415, 2190, 267, 1178, 2305, 217, 1351, 2214, 2433, 315, 1051, 1598, 1569, 18, 2622, 1996, 1508, 359, 713, 1439, 2303, 118, 1647, 720, 485, 2487, 394, 33, 684, 2225, 873, 1085, 1840, 2428, 266, 2097, 2574, 807, 2312, 80, 2407, 1236, 1538, 371, 2131, 2050, 1282, 319, 2073, 2227, 1566, 1360, 874, 171, 245, 114, 2466, 862, 797, 356, 721, 1671, 1, 2485, 977, 2457, 2217, 900, 1705, 968, 242, 100, 105, 344, 384, 2027, 1002, 189, 1449, 510, 2354, 2588, 241, 2124, 2379, 1747, 2207, 1335, 2119, 1797, 2347, 2085, 1857, 1496, 2361, 994, 1799, 1332, 2265, 2010, 2454, 726, 2120, 2578, 13, 1163, 2566, 733, 421, 2011, 1099, 2186, 387, 629, 1225, 2001, 320, 1600, 816, 1645, 1731, 2071, 1510, 32, 1749, 82, 2239, 1901, 92, 723, 243, 1590, 107, 1121, 1180, 1846, 838, 1660, 1391, 2390, 264, 20, 1581, 1211, 892, 831, 1312, 815, 218, 279, 2309, 1162, 683, 2461, 1543, 2538, 670, 1676, 95, 2510, 613, 1281, 2297, 1701, 1564, 1112, 1384, 707, 1392, 1054, 2426, 2505, 311, 710, 2082, 11, 741, 1241, 1821, 1819, 651, 2565, 1183, 307, 979, 2140, 1625, 97, 899, 1062, 1096, 487, 1331, 2306, 636, 2064, 1143, 666, 1909, 424, 898, 2402, 1626, 391, 1153, 1400, 113, 1700, 2079, 2235, 2413, 1687, 1130, 400, 1029, 383, 2501, 381, 702, 1721, 914, 2492, 680, 2095, 724, 2337, 1501, 2283, 2300, 1177, 1969, 1214, 744, 1336, 1558, 943, 1583, 99, 1222, 2438, 132, 2375, 1220, 2349, 1152, 1314, 2410, 1272, 1864, 1725, 1709, 68, 999, 25, 840, 1544, 982, 1699, 2220, 1010, 1207, 423, 1019, 430, 348, 1525, 1323, 1976, 1803, 2105, 352, 1142, 617, 1801, 1209, 1396, 22, 1273, 2191, 2358, 682, 632, 2319, 1287, 369, 1570, 121, 1294, 781, 2582, 183, 1364, 2025, 1793, 1680, 2173, 1983, 1325, 1234, 913, 1745, 1944, 2197, 1628, 2374, 933, 2392, 1704, 2074, 1546, 2556, 10, 565, 1455, 1657, 648, 2386, 1120, 2491, 503, 1378, 1591, 1925, 1008, 931], _phantom: core::marker::PhantomData, }; pub(super) static KEYSYM_TO_UPPER_KEYSYM: PhfMap = PhfMap { key: 12913932095322966823, - disps: &[(0, 12), (0, 0), (0, 10), (0, 5), (0, 26), (0, 20), (0, 8), (0, 0), (0, 4), (0, 0), (0, 18), (0, 35), (0, 1), (0, 0), (0, 0), (0, 52), (0, 5), (0, 4), (0, 26), (0, 1), (0, 3), (0, 0), (0, 2), (0, 1), (0, 2), (0, 2), (0, 9), (0, 0), (0, 0), (0, 8), (0, 0), (0, 55), (0, 3), (0, 1), (0, 1), (0, 3), (0, 0), (0, 18), (0, 2), (0, 124), (0, 0), (0, 11), (0, 164), (0, 10), (0, 2), (0, 85), (2, 10), (0, 56), (0, 67), (0, 36), (1, 34), (0, 0), (0, 100), (0, 23), (0, 64), (0, 95), (0, 7), (0, 5), (0, 144), (0, 0), (1, 65), (0, 50), (0, 1), (0, 0)], - map: &[KeysymCaseMapping { keysym: 0x06db, other: 0x000006fb }, KeysymCaseMapping { keysym: 0x06cc, other: 0x000006ec }, KeysymCaseMapping { keysym: 0x07f4, other: 0x000007d4 }, KeysymCaseMapping { keysym: 0x07b1, other: 0x000007a1 }, KeysymCaseMapping { keysym: 0x00f4, other: 0x000000d4 }, KeysymCaseMapping { keysym: 0x07e4, other: 0x000007c4 }, KeysymCaseMapping { keysym: 0x07e2, other: 0x000007c2 }, KeysymCaseMapping { keysym: 0x01b6, other: 0x000001a6 }, KeysymCaseMapping { keysym: 0x00ec, other: 0x000000cc }, KeysymCaseMapping { keysym: 0x03b5, other: 0x000003a5 }, KeysymCaseMapping { keysym: 0x01f5, other: 0x000001d5 }, KeysymCaseMapping { keysym: 0x06aa, other: 0x000006ba }, KeysymCaseMapping { keysym: 0x03e0, other: 0x000003c0 }, KeysymCaseMapping { keysym: 0x01fe, other: 0x000001de }, KeysymCaseMapping { keysym: 0x07e8, other: 0x000007c8 }, KeysymCaseMapping { keysym: 0x07ed, other: 0x000007cd }, KeysymCaseMapping { keysym: 0x06a6, other: 0x000006b6 }, KeysymCaseMapping { keysym: 0x01ea, other: 0x000001ca }, KeysymCaseMapping { keysym: 0x07f7, other: 0x000007d7 }, KeysymCaseMapping { keysym: 0x02b1, other: 0x000002a1 }, KeysymCaseMapping { keysym: 0x00e9, other: 0x000000c9 }, KeysymCaseMapping { keysym: 0x01e6, other: 0x000001c6 }, KeysymCaseMapping { keysym: 0x06c1, other: 0x000006e1 }, KeysymCaseMapping { keysym: 0x01b9, other: 0x000001a9 }, KeysymCaseMapping { keysym: 0x01fb, other: 0x000001db }, KeysymCaseMapping { keysym: 0x00f6, other: 0x000000d6 }, KeysymCaseMapping { keysym: 0x06d2, other: 0x000006f2 }, KeysymCaseMapping { keysym: 0x00ee, other: 0x000000ce }, KeysymCaseMapping { keysym: 0x03ec, other: 0x000003cc }, KeysymCaseMapping { keysym: 0x01b5, other: 0x000001a5 }, KeysymCaseMapping { keysym: 0x07f9, other: 0x000007d9 }, KeysymCaseMapping { keysym: 0x01f9, other: 0x000001d9 }, KeysymCaseMapping { keysym: 0x01ef, other: 0x000001cf }, KeysymCaseMapping { keysym: 0x00e5, other: 0x000000c5 }, KeysymCaseMapping { keysym: 0x06ce, other: 0x000006ee }, KeysymCaseMapping { keysym: 0x07ea, other: 0x000007ca }, KeysymCaseMapping { keysym: 0x02b6, other: 0x000002a6 }, KeysymCaseMapping { keysym: 0x01f8, other: 0x000001d8 }, KeysymCaseMapping { keysym: 0x07b9, other: 0x000007a9 }, KeysymCaseMapping { keysym: 0x02f8, other: 0x000002d8 }, KeysymCaseMapping { keysym: 0x06df, other: 0x000006ff }, KeysymCaseMapping { keysym: 0x00fd, other: 0x000000dd }, KeysymCaseMapping { keysym: 0x00eb, other: 0x000000cb }, KeysymCaseMapping { keysym: 0x00ff, other: 0x000013be }, KeysymCaseMapping { keysym: 0x00e7, other: 0x000000c7 }, KeysymCaseMapping { keysym: 0x01f0, other: 0x000001d0 }, KeysymCaseMapping { keysym: 0x03fd, other: 0x000003dd }, KeysymCaseMapping { keysym: 0x00fc, other: 0x000000dc }, KeysymCaseMapping { keysym: 0x07b5, other: 0x000007a5 }, KeysymCaseMapping { keysym: 0x06d8, other: 0x000006f8 }, KeysymCaseMapping { keysym: 0x00f3, other: 0x000000d3 }, KeysymCaseMapping { keysym: 0x06c3, other: 0x000006e3 }, KeysymCaseMapping { keysym: 0x07ef, other: 0x000007cf }, KeysymCaseMapping { keysym: 0x07f3, other: 0x000007d2 }, KeysymCaseMapping { keysym: 0x06d4, other: 0x000006f4 }, KeysymCaseMapping { keysym: 0x06a1, other: 0x000006b1 }, KeysymCaseMapping { keysym: 0x06a5, other: 0x000006b5 }, KeysymCaseMapping { keysym: 0x07f0, other: 0x000007d0 }, KeysymCaseMapping { keysym: 0x06a2, other: 0x000006b2 }, KeysymCaseMapping { keysym: 0x06c0, other: 0x000006e0 }, KeysymCaseMapping { keysym: 0x06a9, other: 0x000006b9 }, KeysymCaseMapping { keysym: 0x01b3, other: 0x000001a3 }, KeysymCaseMapping { keysym: 0x07e3, other: 0x000007c3 }, KeysymCaseMapping { keysym: 0x02bc, other: 0x000002ac }, KeysymCaseMapping { keysym: 0x07ec, other: 0x000007cc }, KeysymCaseMapping { keysym: 0x06dd, other: 0x000006fd }, KeysymCaseMapping { keysym: 0x07b3, other: 0x000007a3 }, KeysymCaseMapping { keysym: 0x07bb, other: 0x000007ab }, KeysymCaseMapping { keysym: 0x08f6, other: 0x01000191 }, KeysymCaseMapping { keysym: 0x00ed, other: 0x000000cd }, KeysymCaseMapping { keysym: 0x06ae, other: 0x000006be }, KeysymCaseMapping { keysym: 0x01f2, other: 0x000001d2 }, KeysymCaseMapping { keysym: 0x03bb, other: 0x000003ab }, KeysymCaseMapping { keysym: 0x07b7, other: 0x000007a7 }, KeysymCaseMapping { keysym: 0x02b9, other: 0x00000049 }, KeysymCaseMapping { keysym: 0x03e7, other: 0x000003c7 }, KeysymCaseMapping { keysym: 0x03ba, other: 0x000003aa }, KeysymCaseMapping { keysym: 0x06d1, other: 0x000006f1 }, KeysymCaseMapping { keysym: 0x06c5, other: 0x000006e5 }, KeysymCaseMapping { keysym: 0x07e1, other: 0x000007c1 }, KeysymCaseMapping { keysym: 0x03b6, other: 0x000003a6 }, KeysymCaseMapping { keysym: 0x06c9, other: 0x000006e9 }, KeysymCaseMapping { keysym: 0x07f1, other: 0x000007d1 }, KeysymCaseMapping { keysym: 0x06ab, other: 0x000006bb }, KeysymCaseMapping { keysym: 0x00fe, other: 0x000000de }, KeysymCaseMapping { keysym: 0x06a3, other: 0x000006b3 }, KeysymCaseMapping { keysym: 0x00e2, other: 0x000000c2 }, KeysymCaseMapping { keysym: 0x07b2, other: 0x000007a2 }, KeysymCaseMapping { keysym: 0x06c2, other: 0x000006e2 }, KeysymCaseMapping { keysym: 0x00f1, other: 0x000000d1 }, KeysymCaseMapping { keysym: 0x01e3, other: 0x000001c3 }, KeysymCaseMapping { keysym: 0x07ee, other: 0x000007ce }, KeysymCaseMapping { keysym: 0x01ba, other: 0x000001aa }, KeysymCaseMapping { keysym: 0x06d6, other: 0x000006f6 }, KeysymCaseMapping { keysym: 0x03f1, other: 0x000003d1 }, KeysymCaseMapping { keysym: 0x01ec, other: 0x000001cc }, KeysymCaseMapping { keysym: 0x07e6, other: 0x000007c6 }, KeysymCaseMapping { keysym: 0x00ef, other: 0x000000cf }, KeysymCaseMapping { keysym: 0x06d3, other: 0x000006f3 }, KeysymCaseMapping { keysym: 0x07f5, other: 0x000007d5 }, KeysymCaseMapping { keysym: 0x06cb, other: 0x000006eb }, KeysymCaseMapping { keysym: 0x02bb, other: 0x000002ab }, KeysymCaseMapping { keysym: 0x01bb, other: 0x000001ab }, KeysymCaseMapping { keysym: 0x02fd, other: 0x000002dd }, KeysymCaseMapping { keysym: 0x06c7, other: 0x000006e7 }, KeysymCaseMapping { keysym: 0x02f5, other: 0x000002d5 }, KeysymCaseMapping { keysym: 0x07f2, other: 0x000007d2 }, KeysymCaseMapping { keysym: 0x06d0, other: 0x000006f0 }, KeysymCaseMapping { keysym: 0x01e0, other: 0x000001c0 }, KeysymCaseMapping { keysym: 0x03bf, other: 0x000003bd }, KeysymCaseMapping { keysym: 0x00e8, other: 0x000000c8 }, KeysymCaseMapping { keysym: 0x01bf, other: 0x000001af }, KeysymCaseMapping { keysym: 0x06ad, other: 0x000006bd }, KeysymCaseMapping { keysym: 0x01f1, other: 0x000001d1 }, KeysymCaseMapping { keysym: 0x06da, other: 0x000006fa }, KeysymCaseMapping { keysym: 0x06c8, other: 0x000006e8 }, KeysymCaseMapping { keysym: 0x06dc, other: 0x000006fc }, KeysymCaseMapping { keysym: 0x06c4, other: 0x000006e4 }, KeysymCaseMapping { keysym: 0x00e4, other: 0x000000c4 }, KeysymCaseMapping { keysym: 0x03fe, other: 0x000003de }, KeysymCaseMapping { keysym: 0x06d9, other: 0x000006f9 }, KeysymCaseMapping { keysym: 0x01bc, other: 0x000001ac }, KeysymCaseMapping { keysym: 0x00f5, other: 0x000000d5 }, KeysymCaseMapping { keysym: 0x03f3, other: 0x000003d3 }, KeysymCaseMapping { keysym: 0x00f9, other: 0x000000d9 }, KeysymCaseMapping { keysym: 0x00e0, other: 0x000000c0 }, KeysymCaseMapping { keysym: 0x01e5, other: 0x000001c5 }, KeysymCaseMapping { keysym: 0x06d5, other: 0x000006f5 }, KeysymCaseMapping { keysym: 0x02e6, other: 0x000002c6 }, KeysymCaseMapping { keysym: 0x03ef, other: 0x000003cf }, KeysymCaseMapping { keysym: 0x00e1, other: 0x000000c1 }, KeysymCaseMapping { keysym: 0x07b8, other: 0x000007a8 }, KeysymCaseMapping { keysym: 0x07e9, other: 0x000007c9 }, KeysymCaseMapping { keysym: 0x07f8, other: 0x000007d8 }, KeysymCaseMapping { keysym: 0x06cd, other: 0x000006ed }, KeysymCaseMapping { keysym: 0x06ac, other: 0x000006bc }, KeysymCaseMapping { keysym: 0x00f2, other: 0x000000d2 }, KeysymCaseMapping { keysym: 0x00ea, other: 0x000000ca }, KeysymCaseMapping { keysym: 0x01b1, other: 0x000001a1 }, KeysymCaseMapping { keysym: 0x03bc, other: 0x000003ac }, KeysymCaseMapping { keysym: 0x07e5, other: 0x000007c5 }, KeysymCaseMapping { keysym: 0x07b4, other: 0x000007a4 }, KeysymCaseMapping { keysym: 0x06ca, other: 0x000006ea }, KeysymCaseMapping { keysym: 0x06a7, other: 0x000006b7 }, KeysymCaseMapping { keysym: 0x02fe, other: 0x000002de }, KeysymCaseMapping { keysym: 0x00fb, other: 0x000000db }, KeysymCaseMapping { keysym: 0x07f6, other: 0x000007d6 }, KeysymCaseMapping { keysym: 0x00e6, other: 0x000000c6 }, KeysymCaseMapping { keysym: 0x00b5, other: 0x000007cc }, KeysymCaseMapping { keysym: 0x03f9, other: 0x000003d9 }, KeysymCaseMapping { keysym: 0x01be, other: 0x000001ae }, KeysymCaseMapping { keysym: 0x06a8, other: 0x000006b8 }, KeysymCaseMapping { keysym: 0x13bd, other: 0x000013bc }, KeysymCaseMapping { keysym: 0x06c6, other: 0x000006e6 }, KeysymCaseMapping { keysym: 0x06d7, other: 0x000006f7 }, KeysymCaseMapping { keysym: 0x00e3, other: 0x000000c3 }, KeysymCaseMapping { keysym: 0x00fa, other: 0x000000da }, KeysymCaseMapping { keysym: 0x03b3, other: 0x000003a3 }, KeysymCaseMapping { keysym: 0x00f8, other: 0x000000d8 }, KeysymCaseMapping { keysym: 0x06cf, other: 0x000006ef }, KeysymCaseMapping { keysym: 0x07eb, other: 0x000007cb }, KeysymCaseMapping { keysym: 0x00f0, other: 0x000000d0 }, KeysymCaseMapping { keysym: 0x06de, other: 0x000006fe }, KeysymCaseMapping { keysym: 0x06af, other: 0x000006bf }, KeysymCaseMapping { keysym: 0x06a4, other: 0x000006b4 }, KeysymCaseMapping { keysym: 0x07e7, other: 0x000007c7 }, KeysymCaseMapping { keysym: 0x03f2, other: 0x000003d2 }, KeysymCaseMapping { keysym: 0x01e8, other: 0x000001c8 }, KeysymCaseMapping { keysym: 0x02e5, other: 0x000002c5 }], + disps: &[(0, 20), (0, 9), (0, 0), (0, 0), (0, 2), (0, 10), (0, 6), (0, 0), (0, 9), (0, 1), (0, 22), (0, 15), (0, 0), (0, 7), (0, 0), (0, 13), (0, 3), (0, 0), (0, 45), (0, 1), (0, 1), (0, 0), (0, 17), (0, 35), (0, 3), (0, 0), (0, 104), (0, 76), (0, 0), (0, 12), (0, 0), (0, 83), (0, 44), (0, 78), (0, 13), (0, 115), (0, 0), (0, 82), (0, 4), (0, 1), (0, 1), (0, 150), (0, 41), (0, 2), (0, 1), (0, 61), (0, 97), (0, 13), (1, 109), (0, 1), (0, 73), (0, 0), (0, 43), (0, 32), (0, 1), (0, 36), (0, 3), (0, 4), (0, 35), (0, 0), (0, 111), (0, 123), (0, 0), (0, 0)], + map: &[KeysymCaseMapping { keysym: 0x06d7, other: 0x000006f7 }, KeysymCaseMapping { keysym: 0x07e9, other: 0x000007c9 }, KeysymCaseMapping { keysym: 0x06aa, other: 0x000006ba }, KeysymCaseMapping { keysym: 0x00fe, other: 0x000000de }, KeysymCaseMapping { keysym: 0x00ed, other: 0x000000cd }, KeysymCaseMapping { keysym: 0x03f3, other: 0x000003d3 }, KeysymCaseMapping { keysym: 0x00f9, other: 0x000000d9 }, KeysymCaseMapping { keysym: 0x06c1, other: 0x000006e1 }, KeysymCaseMapping { keysym: 0x02b1, other: 0x000002a1 }, KeysymCaseMapping { keysym: 0x07f7, other: 0x000007d7 }, KeysymCaseMapping { keysym: 0x06c6, other: 0x000006e6 }, KeysymCaseMapping { keysym: 0x00f3, other: 0x000000d3 }, KeysymCaseMapping { keysym: 0x00fb, other: 0x000000db }, KeysymCaseMapping { keysym: 0x07f0, other: 0x000007d0 }, KeysymCaseMapping { keysym: 0x00e0, other: 0x000000c0 }, KeysymCaseMapping { keysym: 0x03e7, other: 0x000003c7 }, KeysymCaseMapping { keysym: 0x07f3, other: 0x000007d2 }, KeysymCaseMapping { keysym: 0x00ec, other: 0x000000cc }, KeysymCaseMapping { keysym: 0x00e8, other: 0x000000c8 }, KeysymCaseMapping { keysym: 0x00ea, other: 0x000000ca }, KeysymCaseMapping { keysym: 0x02f5, other: 0x000002d5 }, KeysymCaseMapping { keysym: 0x07ef, other: 0x000007cf }, KeysymCaseMapping { keysym: 0x01ea, other: 0x000001ca }, KeysymCaseMapping { keysym: 0x00ef, other: 0x000000cf }, KeysymCaseMapping { keysym: 0x06d4, other: 0x000006f4 }, KeysymCaseMapping { keysym: 0x02bb, other: 0x000002ab }, KeysymCaseMapping { keysym: 0x06c3, other: 0x000006e3 }, KeysymCaseMapping { keysym: 0x01ba, other: 0x000001aa }, KeysymCaseMapping { keysym: 0x00f0, other: 0x000000d0 }, KeysymCaseMapping { keysym: 0x03e0, other: 0x000003c0 }, KeysymCaseMapping { keysym: 0x06af, other: 0x000006bf }, KeysymCaseMapping { keysym: 0x00fd, other: 0x000000dd }, KeysymCaseMapping { keysym: 0x06d2, other: 0x000006f2 }, KeysymCaseMapping { keysym: 0x00f2, other: 0x000000d2 }, KeysymCaseMapping { keysym: 0x00fa, other: 0x000000da }, KeysymCaseMapping { keysym: 0x06d6, other: 0x000006f6 }, KeysymCaseMapping { keysym: 0x00df, other: 0x01001e9e }, KeysymCaseMapping { keysym: 0x02fd, other: 0x000002dd }, KeysymCaseMapping { keysym: 0x07e1, other: 0x000007c1 }, KeysymCaseMapping { keysym: 0x06a5, other: 0x000006b5 }, KeysymCaseMapping { keysym: 0x00e1, other: 0x000000c1 }, KeysymCaseMapping { keysym: 0x07f2, other: 0x000007d2 }, KeysymCaseMapping { keysym: 0x01b5, other: 0x000001a5 }, KeysymCaseMapping { keysym: 0x07ed, other: 0x000007cd }, KeysymCaseMapping { keysym: 0x06d9, other: 0x000006f9 }, KeysymCaseMapping { keysym: 0x01bc, other: 0x000001ac }, KeysymCaseMapping { keysym: 0x07b8, other: 0x000007a8 }, KeysymCaseMapping { keysym: 0x06dc, other: 0x000006fc }, KeysymCaseMapping { keysym: 0x07e4, other: 0x000007c4 }, KeysymCaseMapping { keysym: 0x06ac, other: 0x000006bc }, KeysymCaseMapping { keysym: 0x07e2, other: 0x000007c2 }, KeysymCaseMapping { keysym: 0x00f4, other: 0x000000d4 }, KeysymCaseMapping { keysym: 0x06c8, other: 0x000006e8 }, KeysymCaseMapping { keysym: 0x03b6, other: 0x000003a6 }, KeysymCaseMapping { keysym: 0x03bf, other: 0x000003bd }, KeysymCaseMapping { keysym: 0x07f1, other: 0x000007d1 }, KeysymCaseMapping { keysym: 0x00ee, other: 0x000000ce }, KeysymCaseMapping { keysym: 0x07e3, other: 0x000007c3 }, KeysymCaseMapping { keysym: 0x00e3, other: 0x000000c3 }, KeysymCaseMapping { keysym: 0x01bf, other: 0x000001af }, KeysymCaseMapping { keysym: 0x02b6, other: 0x000002a6 }, KeysymCaseMapping { keysym: 0x02f8, other: 0x000002d8 }, KeysymCaseMapping { keysym: 0x07f4, other: 0x000007d4 }, KeysymCaseMapping { keysym: 0x01be, other: 0x000001ae }, KeysymCaseMapping { keysym: 0x01b9, other: 0x000001a9 }, KeysymCaseMapping { keysym: 0x06c7, other: 0x000006e7 }, KeysymCaseMapping { keysym: 0x02b9, other: 0x00000049 }, KeysymCaseMapping { keysym: 0x07f6, other: 0x000007d6 }, KeysymCaseMapping { keysym: 0x00f1, other: 0x000000d1 }, KeysymCaseMapping { keysym: 0x06ca, other: 0x000006ea }, KeysymCaseMapping { keysym: 0x00f6, other: 0x000000d6 }, KeysymCaseMapping { keysym: 0x01f1, other: 0x000001d1 }, KeysymCaseMapping { keysym: 0x06db, other: 0x000006fb }, KeysymCaseMapping { keysym: 0x13bd, other: 0x000013bc }, KeysymCaseMapping { keysym: 0x07e5, other: 0x000007c5 }, KeysymCaseMapping { keysym: 0x07b3, other: 0x000007a3 }, KeysymCaseMapping { keysym: 0x06d0, other: 0x000006f0 }, KeysymCaseMapping { keysym: 0x06d8, other: 0x000006f8 }, KeysymCaseMapping { keysym: 0x01e0, other: 0x000001c0 }, KeysymCaseMapping { keysym: 0x06cd, other: 0x000006ed }, KeysymCaseMapping { keysym: 0x03b3, other: 0x000003a3 }, KeysymCaseMapping { keysym: 0x01b6, other: 0x000001a6 }, KeysymCaseMapping { keysym: 0x06c9, other: 0x000006e9 }, KeysymCaseMapping { keysym: 0x01fe, other: 0x000001de }, KeysymCaseMapping { keysym: 0x07b5, other: 0x000007a5 }, KeysymCaseMapping { keysym: 0x07e8, other: 0x000007c8 }, KeysymCaseMapping { keysym: 0x03b5, other: 0x000003a5 }, KeysymCaseMapping { keysym: 0x03f9, other: 0x000003d9 }, KeysymCaseMapping { keysym: 0x06cc, other: 0x000006ec }, KeysymCaseMapping { keysym: 0x02e6, other: 0x000002c6 }, KeysymCaseMapping { keysym: 0x01fb, other: 0x000001db }, KeysymCaseMapping { keysym: 0x01bb, other: 0x000001ab }, KeysymCaseMapping { keysym: 0x07e7, other: 0x000007c7 }, KeysymCaseMapping { keysym: 0x06dd, other: 0x000006fd }, KeysymCaseMapping { keysym: 0x00e7, other: 0x000000c7 }, KeysymCaseMapping { keysym: 0x00e2, other: 0x000000c2 }, KeysymCaseMapping { keysym: 0x06da, other: 0x000006fa }, KeysymCaseMapping { keysym: 0x06a4, other: 0x000006b4 }, KeysymCaseMapping { keysym: 0x06df, other: 0x000006ff }, KeysymCaseMapping { keysym: 0x06a1, other: 0x000006b1 }, KeysymCaseMapping { keysym: 0x07f9, other: 0x000007d9 }, KeysymCaseMapping { keysym: 0x01f0, other: 0x000001d0 }, KeysymCaseMapping { keysym: 0x07f5, other: 0x000007d5 }, KeysymCaseMapping { keysym: 0x06a6, other: 0x000006b6 }, KeysymCaseMapping { keysym: 0x07ea, other: 0x000007ca }, KeysymCaseMapping { keysym: 0x06ce, other: 0x000006ee }, KeysymCaseMapping { keysym: 0x01f5, other: 0x000001d5 }, KeysymCaseMapping { keysym: 0x03fe, other: 0x000003de }, KeysymCaseMapping { keysym: 0x01ef, other: 0x000001cf }, KeysymCaseMapping { keysym: 0x06ae, other: 0x000006be }, KeysymCaseMapping { keysym: 0x06a2, other: 0x000006b2 }, KeysymCaseMapping { keysym: 0x07b7, other: 0x000007a7 }, KeysymCaseMapping { keysym: 0x00e4, other: 0x000000c4 }, KeysymCaseMapping { keysym: 0x07b4, other: 0x000007a4 }, KeysymCaseMapping { keysym: 0x00f8, other: 0x000000d8 }, KeysymCaseMapping { keysym: 0x01f8, other: 0x000001d8 }, KeysymCaseMapping { keysym: 0x06d1, other: 0x000006f1 }, KeysymCaseMapping { keysym: 0x06a9, other: 0x000006b9 }, KeysymCaseMapping { keysym: 0x03bb, other: 0x000003ab }, KeysymCaseMapping { keysym: 0x06a3, other: 0x000006b3 }, KeysymCaseMapping { keysym: 0x01f2, other: 0x000001d2 }, KeysymCaseMapping { keysym: 0x06cb, other: 0x000006eb }, KeysymCaseMapping { keysym: 0x03fd, other: 0x000003dd }, KeysymCaseMapping { keysym: 0x06c0, other: 0x000006e0 }, KeysymCaseMapping { keysym: 0x03f2, other: 0x000003d2 }, KeysymCaseMapping { keysym: 0x03ef, other: 0x000003cf }, KeysymCaseMapping { keysym: 0x07b1, other: 0x000007a1 }, KeysymCaseMapping { keysym: 0x03ec, other: 0x000003cc }, KeysymCaseMapping { keysym: 0x03ba, other: 0x000003aa }, KeysymCaseMapping { keysym: 0x07e6, other: 0x000007c6 }, KeysymCaseMapping { keysym: 0x07b2, other: 0x000007a2 }, KeysymCaseMapping { keysym: 0x00e6, other: 0x000000c6 }, KeysymCaseMapping { keysym: 0x01b1, other: 0x000001a1 }, KeysymCaseMapping { keysym: 0x06de, other: 0x000006fe }, KeysymCaseMapping { keysym: 0x02bc, other: 0x000002ac }, KeysymCaseMapping { keysym: 0x06d3, other: 0x000006f3 }, KeysymCaseMapping { keysym: 0x01e6, other: 0x000001c6 }, KeysymCaseMapping { keysym: 0x00f5, other: 0x000000d5 }, KeysymCaseMapping { keysym: 0x07ec, other: 0x000007cc }, KeysymCaseMapping { keysym: 0x07ee, other: 0x000007ce }, KeysymCaseMapping { keysym: 0x00e9, other: 0x000000c9 }, KeysymCaseMapping { keysym: 0x06c2, other: 0x000006e2 }, KeysymCaseMapping { keysym: 0x07b9, other: 0x000007a9 }, KeysymCaseMapping { keysym: 0x07f8, other: 0x000007d8 }, KeysymCaseMapping { keysym: 0x01e3, other: 0x000001c3 }, KeysymCaseMapping { keysym: 0x06ab, other: 0x000006bb }, KeysymCaseMapping { keysym: 0x02fe, other: 0x000002de }, KeysymCaseMapping { keysym: 0x06a8, other: 0x000006b8 }, KeysymCaseMapping { keysym: 0x03bc, other: 0x000003ac }, KeysymCaseMapping { keysym: 0x00fc, other: 0x000000dc }, KeysymCaseMapping { keysym: 0x06ad, other: 0x000006bd }, KeysymCaseMapping { keysym: 0x01b3, other: 0x000001a3 }, KeysymCaseMapping { keysym: 0x00ff, other: 0x000013be }, KeysymCaseMapping { keysym: 0x01e8, other: 0x000001c8 }, KeysymCaseMapping { keysym: 0x06a7, other: 0x000006b7 }, KeysymCaseMapping { keysym: 0x06c5, other: 0x000006e5 }, KeysymCaseMapping { keysym: 0x03f1, other: 0x000003d1 }, KeysymCaseMapping { keysym: 0x00eb, other: 0x000000cb }, KeysymCaseMapping { keysym: 0x00e5, other: 0x000000c5 }, KeysymCaseMapping { keysym: 0x06c4, other: 0x000006e4 }, KeysymCaseMapping { keysym: 0x06cf, other: 0x000006ef }, KeysymCaseMapping { keysym: 0x07bb, other: 0x000007ab }, KeysymCaseMapping { keysym: 0x01ec, other: 0x000001cc }, KeysymCaseMapping { keysym: 0x07eb, other: 0x000007cb }, KeysymCaseMapping { keysym: 0x02e5, other: 0x000002c5 }, KeysymCaseMapping { keysym: 0x01e5, other: 0x000001c5 }, KeysymCaseMapping { keysym: 0x00b5, other: 0x000007cc }, KeysymCaseMapping { keysym: 0x01f9, other: 0x000001d9 }, KeysymCaseMapping { keysym: 0x08f6, other: 0x01000191 }, KeysymCaseMapping { keysym: 0x06d5, other: 0x000006f5 }], _phantom: core::marker::PhantomData, }; @@ -4035,7 +4035,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000008, name_start: 69, name_len: 10, - flags: 0 | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000028, @@ -4383,7 +4383,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000042, name_start: 265, name_len: 9, - flags: 0 | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000061, @@ -4635,7 +4635,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000000ab, name_start: 422, name_len: 13, - flags: 0 | HAS_CHAR | KEYSYM_IS_CHAR, + flags: 0 | HAS_CHAR | KEYSYM_IS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000006d, @@ -4731,7 +4731,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000000ba, name_start: 564, name_len: 9, - flags: 0 | IS_LOWER | HAS_CHAR | KEYSYM_IS_CHAR, + flags: 0 | IS_LOWER | HAS_CHAR | KEYSYM_IS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000007d, @@ -4743,7 +4743,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000000bb, name_start: 585, name_len: 14, - flags: 0 | HAS_CHAR | KEYSYM_IS_CHAR, + flags: 0 | HAS_CHAR | KEYSYM_IS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000007f, @@ -4881,7 +4881,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000095, name_start: 778, name_len: 3, - flags: 0 | IS_UPPER | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000000d1, @@ -4935,7 +4935,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000009e, name_start: 840, name_len: 8, - flags: 0 | IS_UPPER | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000000d9, @@ -4977,7 +4977,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000000a5, name_start: 892, name_len: 5, - flags: 0 | IS_UPPER | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000000df, @@ -5139,7 +5139,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000000c0, name_start: 1085, name_len: 8, - flags: 0 | IS_LOWER | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | KEYSYM_IS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000000f9, @@ -5667,7 +5667,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000118, name_start: 1742, name_len: 5, - flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000003a3, @@ -5913,7 +5913,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000141, name_start: 2070, name_len: 14, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000004a6, @@ -5979,7 +5979,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000014c, name_start: 2150, name_len: 7, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000004b0, @@ -6093,7 +6093,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000015f, name_start: 2287, name_len: 7, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000004c2, @@ -6105,7 +6105,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000161, name_start: 2302, name_len: 7, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000004c3, @@ -6171,7 +6171,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000016c, name_start: 2379, name_len: 7, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000004cd, @@ -6513,7 +6513,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001a5, name_start: 2983, name_len: 10, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000005e8, @@ -6609,7 +6609,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001b5, name_start: 3184, name_len: 11, - flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006a5, @@ -6627,7 +6627,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001b8, name_start: 3219, name_len: 10, - flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006a7, @@ -6639,7 +6639,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001ba, name_start: 3241, name_len: 11, - flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006a8, @@ -6651,7 +6651,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001bc, name_start: 3263, name_len: 10, - flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006a9, @@ -6663,7 +6663,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001be, name_start: 3285, name_len: 11, - flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006aa, @@ -6675,7 +6675,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001c0, name_start: 3308, name_len: 11, - flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006ab, @@ -6711,7 +6711,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001c6, name_start: 3401, name_len: 11, - flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_LOWER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006b0, @@ -6747,7 +6747,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001cc, name_start: 3469, name_len: 11, - flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006b5, @@ -6765,7 +6765,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001cf, name_start: 3504, name_len: 10, - flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006b7, @@ -6777,7 +6777,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001d1, name_start: 3526, name_len: 11, - flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006b8, @@ -6789,7 +6789,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001d3, name_start: 3548, name_len: 10, - flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006b9, @@ -6801,7 +6801,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001d5, name_start: 3570, name_len: 11, - flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006ba, @@ -6813,7 +6813,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001d7, name_start: 3593, name_len: 11, - flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006bb, @@ -6849,7 +6849,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000001dd, name_start: 3686, name_len: 11, - flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000006c0, @@ -7269,7 +7269,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000223, name_start: 4528, name_len: 19, - flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | IS_UPPER | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000007a7, @@ -7689,13 +7689,13 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000008a2, name_start: 5411, name_len: 14, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000008a3, name_start: 5425, name_len: 14, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000008a4, @@ -7713,7 +7713,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000008a6, name_start: 5461, name_len: 13, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000008a7, @@ -8181,7 +8181,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000aac, name_start: 6297, name_len: 11, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000aae, @@ -8259,19 +8259,19 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000abc, name_start: 6417, name_len: 16, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000abd, name_start: 6433, name_len: 12, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000abe, name_start: 6445, name_len: 17, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000abf, @@ -8313,7 +8313,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000aca, name_start: 6521, name_len: 13, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000acb, @@ -8325,25 +8325,25 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000acc, name_start: 6551, name_len: 16, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000acd, name_start: 6567, name_len: 17, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ace, name_start: 6584, name_len: 12, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000acf, name_start: 6596, name_len: 15, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ad0, @@ -8409,103 +8409,103 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000adb, name_start: 6741, name_len: 16, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000adc, name_start: 6757, name_len: 19, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000add, name_start: 6776, name_len: 20, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ade, name_start: 6796, name_len: 14, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000adf, name_start: 6810, name_len: 12, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae0, name_start: 6822, name_len: 16, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae1, name_start: 6838, name_len: 18, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae2, name_start: 6856, name_len: 14, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae3, name_start: 6870, name_len: 15, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae4, name_start: 6885, name_len: 17, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae5, name_start: 6902, name_len: 8, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae6, name_start: 6910, name_len: 18, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae7, name_start: 6928, name_len: 16, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae8, name_start: 6944, name_len: 17, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ae9, name_start: 6961, name_len: 19, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000aea, name_start: 6980, name_len: 11, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000aeb, name_start: 6991, name_len: 12, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000aec, @@ -8625,31 +8625,31 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000ba3, name_start: 7206, name_len: 9, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ba6, name_start: 7215, name_len: 10, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ba8, name_start: 7225, name_len: 9, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ba9, name_start: 7234, name_len: 7, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000bc0, name_start: 7241, name_len: 7, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000bc2, @@ -8661,7 +8661,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000bc3, name_start: 7256, name_len: 6, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000bc4, @@ -8673,7 +8673,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000bc6, name_start: 7271, name_len: 8, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000bca, @@ -8709,19 +8709,19 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000bd6, name_start: 7305, name_len: 8, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000bd8, name_start: 7313, name_len: 9, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000bda, name_start: 7322, name_len: 8, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000bdc, @@ -8757,7 +8757,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000031b, name_start: 7389, name_len: 11, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ce2, @@ -8769,7 +8769,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000031d, name_start: 7412, name_len: 13, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ce3, @@ -8781,7 +8781,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000031f, name_start: 7437, name_len: 13, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ce4, @@ -8805,7 +8805,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000323, name_start: 7480, name_len: 12, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ce7, @@ -8817,7 +8817,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000325, name_start: 7503, name_len: 10, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ce8, @@ -8829,7 +8829,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000327, name_start: 7523, name_len: 11, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ce9, @@ -8889,7 +8889,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000331, name_start: 7646, name_len: 13, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000cf2, @@ -8919,7 +8919,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000336, name_start: 7709, name_len: 16, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000cf6, @@ -8931,7 +8931,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000338, name_start: 7736, name_len: 11, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000cf7, @@ -8943,7 +8943,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000033a, name_start: 7758, name_len: 10, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000cf8, @@ -8967,7 +8967,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000033e, name_start: 7800, name_len: 10, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000da1, @@ -9321,7 +9321,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000dde, name_start: 8475, name_len: 22, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000ddf, @@ -10017,7 +10017,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000eff, name_start: 10123, name_len: 10, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000013bc, @@ -10797,7 +10797,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000fe8a, name_start: 11923, name_len: 16, - flags: 0, + flags: 0 | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000470, @@ -10809,7 +10809,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000fe8b, name_start: 11949, name_len: 18, - flags: 0, + flags: 0 | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000472, @@ -11439,7 +11439,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000004da, name_start: 13209, name_len: 7, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000004da, @@ -11457,7 +11457,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000004dd, name_start: 13229, name_len: 9, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x000004dd, @@ -11715,7 +11715,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000508, name_start: 13560, name_len: 10, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ff9b, @@ -11727,7 +11727,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000050a, name_start: 13577, name_len: 12, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ff9c, @@ -11925,7 +11925,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000052b, name_start: 13752, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffc9, @@ -11937,7 +11937,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000052d, name_start: 13757, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffca, @@ -11949,7 +11949,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000052f, name_start: 13762, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffcb, @@ -11961,7 +11961,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000531, name_start: 13767, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffcc, @@ -11973,7 +11973,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000533, name_start: 13772, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffcd, @@ -11985,7 +11985,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000535, name_start: 13777, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffce, @@ -11997,7 +11997,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000537, name_start: 13782, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffcf, @@ -12009,7 +12009,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000539, name_start: 13787, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd0, @@ -12021,7 +12021,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000053b, name_start: 13792, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd1, @@ -12033,7 +12033,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000053d, name_start: 13797, name_len: 3, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd2, @@ -12045,7 +12045,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000053f, name_start: 13803, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd3, @@ -12057,7 +12057,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000541, name_start: 13808, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd4, @@ -12069,7 +12069,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000543, name_start: 13813, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd5, @@ -12081,7 +12081,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000545, name_start: 13818, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd6, @@ -12093,7 +12093,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000547, name_start: 13823, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd7, @@ -12105,7 +12105,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000549, name_start: 13828, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd8, @@ -12117,7 +12117,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000054b, name_start: 13833, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffd9, @@ -12129,7 +12129,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000054d, name_start: 13838, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffda, @@ -12141,7 +12141,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000054f, name_start: 13843, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffdb, @@ -12153,7 +12153,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000551, name_start: 13848, name_len: 3, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffdc, @@ -12165,7 +12165,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000553, name_start: 13854, name_len: 3, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffdd, @@ -12177,7 +12177,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000555, name_start: 13860, name_len: 3, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffde, @@ -12189,7 +12189,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000557, name_start: 13866, name_len: 3, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffdf, @@ -12201,7 +12201,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000559, name_start: 13872, name_len: 3, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffe0, @@ -12213,7 +12213,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000055b, name_start: 13878, name_len: 3, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0000ffe1, @@ -12957,7 +12957,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000005d7, name_start: 15398, name_len: 15, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0100055c, @@ -12969,7 +12969,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000005d9, name_start: 15428, name_len: 15, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0100055d, @@ -12981,7 +12981,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000005db, name_start: 15467, name_len: 12, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0100055e, @@ -12993,7 +12993,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x000005dd, name_start: 15496, name_len: 15, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x01000561, @@ -13239,7 +13239,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000606, name_start: 15993, name_len: 17, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x0100058a, @@ -13251,7 +13251,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000608, name_start: 16025, name_len: 17, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x01000653, @@ -13425,7 +13425,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000625, name_start: 16374, name_len: 16, - flags: 0 | HAS_CHAR | IS_SECONDARY_IDX, + flags: 0 | HAS_CHAR | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x010006d2, @@ -15141,13 +15141,13 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x01002247, name_start: 19232, name_len: 11, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x01002248, name_start: 19243, name_len: 8, - flags: 0 | HAS_CHAR, + flags: 0 | HAS_CHAR | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x01002262, @@ -16707,7 +16707,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000848, name_start: 23635, name_len: 10, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000a9, @@ -16719,7 +16719,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000084a, name_start: 23657, name_len: 10, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000aa, @@ -16731,7 +16731,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000084c, name_start: 23685, name_len: 16, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000ab, @@ -16743,7 +16743,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000084e, name_start: 23717, name_len: 14, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000ac, @@ -16755,7 +16755,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000850, name_start: 23748, name_len: 15, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000af, @@ -16767,7 +16767,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000852, name_start: 23769, name_len: 4, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000be, @@ -16779,7 +16779,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000854, name_start: 23782, name_len: 7, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000ee, @@ -16791,13 +16791,13 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000856, name_start: 23801, name_len: 4, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x00000856, name_start: 23805, name_len: 2, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000f6, @@ -16809,7 +16809,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000859, name_start: 23818, name_len: 9, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x100000fc, @@ -16821,7 +16821,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000085b, name_start: 23834, name_len: 5, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000fe22, @@ -16893,7 +16893,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000867, name_start: 23962, name_len: 5, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff6d, @@ -16905,7 +16905,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000869, name_start: 23975, name_len: 6, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff6e, @@ -16917,7 +16917,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000086b, name_start: 23987, name_len: 4, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff6f, @@ -16929,7 +16929,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000086d, name_start: 24002, name_len: 9, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff70, @@ -16941,7 +16941,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x0000086f, name_start: 24023, name_len: 10, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff71, @@ -16953,7 +16953,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000871, name_start: 24045, name_len: 10, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff72, @@ -16965,7 +16965,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000873, name_start: 24067, name_len: 10, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff73, @@ -16977,7 +16977,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000875, name_start: 24089, name_len: 10, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff74, @@ -16989,7 +16989,7 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000877, name_start: 24108, name_len: 7, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff75, @@ -17001,19 +17001,19 @@ pub(super) static DATAS: &[KeysymData] = &[ keysym_or_definitive_idx: 0x00000879, name_start: 24127, name_len: 10, - flags: 0 | IS_SECONDARY_IDX, + flags: 0 | IS_SECONDARY_IDX | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff76, name_start: 24137, name_len: 10, - flags: 0, + flags: 0 | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1000ff77, name_start: 24147, name_len: 10, - flags: 0, + flags: 0 | IS_DEPRECATED, }, KeysymData { keysym_or_definitive_idx: 0x1004ff02, @@ -17394,2060 +17394,2342 @@ pub(super) static DATAS: &[KeysymData] = &[ flags: 0, }, KeysymData { - keysym_or_definitive_idx: 0x100810f4, + keysym_or_definitive_idx: 0x100810dc, name_start: 24832, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100810f4, + name_start: 24841, name_len: 18, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x000008bd, + name_start: 24859, + name_len: 21, + flags: 0 | IS_SECONDARY_IDX, + }, KeysymData { keysym_or_definitive_idx: 0x100810f5, - name_start: 24850, + name_start: 24880, name_len: 14, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x10081160, + name_start: 24894, + name_len: 6, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081162, + name_start: 24900, + name_len: 8, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x10081166, - name_start: 24864, + name_start: 24908, name_len: 8, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x10081168, + name_start: 24916, + name_len: 14, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x1008116a, + name_start: 24930, + name_len: 27, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x1008116e, + name_start: 24957, + name_len: 19, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081170, + name_start: 24976, + name_len: 21, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081171, + name_start: 24997, + name_len: 18, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081175, + name_start: 25015, + name_len: 20, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x10081177, - name_start: 24872, + name_start: 25035, name_len: 15, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x10081178, + name_start: 25050, + name_len: 17, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081179, + name_start: 25067, + name_len: 17, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x1008117a, + name_start: 25084, + name_len: 20, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x1008117b, + name_start: 25104, + name_len: 18, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x1008117c, + name_start: 25122, + name_len: 22, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x1008117d, + name_start: 25144, + name_len: 24, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081180, + name_start: 25168, + name_len: 19, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081181, + name_start: 25187, + name_len: 20, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081182, + name_start: 25207, + name_len: 20, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081183, + name_start: 25227, + name_len: 15, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081184, + name_start: 25242, + name_len: 23, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x10081185, - name_start: 24887, + name_start: 25265, name_len: 7, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x000008d5, + name_start: 25272, + name_len: 18, + flags: 0 | IS_SECONDARY_IDX, + }, + KeysymData { + keysym_or_definitive_idx: 0x10081186, + name_start: 25290, + name_len: 24, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x10081188, - name_start: 24894, + name_start: 25314, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081192, - name_start: 24903, + name_start: 25323, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081193, - name_start: 24916, + name_start: 25336, name_len: 15, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x10081199, + name_start: 25351, + name_len: 17, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x1008119b, - name_start: 24931, + name_start: 25368, name_len: 9, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x1008119d, + name_start: 25377, + name_len: 19, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x100811a0, - name_start: 24940, + name_start: 25396, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811a4, - name_start: 24954, + name_start: 25410, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811a6, - name_start: 24967, + name_start: 25423, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811a8, - name_start: 24977, + name_start: 25433, name_len: 18, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811a9, - name_start: 24995, + name_start: 25451, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811aa, - name_start: 25011, + name_start: 25467, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811ac, - name_start: 25023, + name_start: 25479, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811ad, - name_start: 25036, + name_start: 25492, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811af, - name_start: 25051, + name_start: 25507, name_len: 17, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811b0, - name_start: 25068, + name_start: 25524, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811b6, - name_start: 25082, + name_start: 25538, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811b7, - name_start: 25097, + name_start: 25553, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811b8, - name_start: 25112, + name_start: 25568, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811b9, - name_start: 25128, + name_start: 25584, name_len: 18, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811ba, - name_start: 25146, + name_start: 25602, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811bc, - name_start: 25156, + name_start: 25612, name_len: 22, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811bd, - name_start: 25178, + name_start: 25634, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811be, - name_start: 25193, + name_start: 25649, name_len: 15, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x100811bf, + name_start: 25664, + name_len: 13, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x100811d0, - name_start: 25208, + name_start: 25677, name_len: 6, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100811d1, - name_start: 25214, + name_start: 25683, + name_len: 10, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811d2, + name_start: 25693, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811d3, + name_start: 25702, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811d4, + name_start: 25711, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811d5, + name_start: 25720, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811d6, + name_start: 25729, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811d7, + name_start: 25738, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811d8, + name_start: 25747, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811d9, + name_start: 25756, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811da, + name_start: 25765, + name_len: 9, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811db, + name_start: 25774, + name_len: 10, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811dc, + name_start: 25784, + name_len: 10, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811dd, + name_start: 25794, name_len: 10, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x100811de, + name_start: 25804, + name_len: 8, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811df, + name_start: 25812, + name_len: 8, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811e0, + name_start: 25820, + name_len: 8, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811e1, + name_start: 25828, + name_len: 8, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811e2, + name_start: 25836, + name_len: 8, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811e3, + name_start: 25844, + name_len: 8, + flags: 0, + }, + KeysymData { + keysym_or_definitive_idx: 0x100811e4, + name_start: 25852, + name_len: 8, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x100811e5, - name_start: 25224, + name_start: 25860, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081200, - name_start: 25240, + name_start: 25876, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081201, - name_start: 25252, + name_start: 25888, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081202, - name_start: 25264, + name_start: 25900, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081203, - name_start: 25276, + name_start: 25912, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081204, - name_start: 25288, + name_start: 25924, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081205, - name_start: 25300, + name_start: 25936, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081206, - name_start: 25312, + name_start: 25948, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081207, - name_start: 25324, + name_start: 25960, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081208, - name_start: 25336, + name_start: 25972, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081209, - name_start: 25348, + name_start: 25984, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008120a, - name_start: 25360, + name_start: 25996, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008120b, - name_start: 25375, + name_start: 26011, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008120c, - name_start: 25391, + name_start: 26027, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008120d, - name_start: 25403, + name_start: 26039, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008120e, - name_start: 25415, + name_start: 26051, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008120f, - name_start: 25427, + name_start: 26063, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081210, - name_start: 25439, + name_start: 26075, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081211, - name_start: 25454, + name_start: 26090, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081215, - name_start: 25467, + name_start: 26103, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081216, - name_start: 25483, + name_start: 26119, name_len: 17, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081217, - name_start: 25500, + name_start: 26136, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081218, - name_start: 25512, + name_start: 26148, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081219, - name_start: 25526, + name_start: 26162, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008121a, - name_start: 25540, + name_start: 26176, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008121b, - name_start: 25555, + name_start: 26191, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008121c, - name_start: 25570, + name_start: 26206, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008121d, - name_start: 25586, + name_start: 26222, name_len: 19, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008121e, - name_start: 25605, + name_start: 26241, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081230, - name_start: 25621, + name_start: 26257, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081232, - name_start: 25634, + name_start: 26270, name_len: 21, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081240, - name_start: 25655, + name_start: 26291, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081241, - name_start: 25671, + name_start: 26307, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081242, - name_start: 25686, + name_start: 26322, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081243, - name_start: 25697, + name_start: 26333, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081244, - name_start: 25713, + name_start: 26349, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081245, - name_start: 25726, + name_start: 26362, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081246, - name_start: 25741, + name_start: 26377, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081247, - name_start: 25757, + name_start: 26393, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081249, - name_start: 25770, + name_start: 26406, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008124a, - name_start: 25785, + name_start: 26421, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008124b, - name_start: 25796, + name_start: 26432, name_len: 22, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008124c, - name_start: 25818, + name_start: 26454, name_len: 23, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008124d, - name_start: 25841, + name_start: 26477, name_len: 22, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008124e, - name_start: 25863, + name_start: 26499, name_len: 17, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008124f, - name_start: 25880, + name_start: 26516, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081250, - name_start: 25896, + name_start: 26532, name_len: 17, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081251, - name_start: 25913, + name_start: 26549, name_len: 17, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081260, - name_start: 25930, + name_start: 26566, name_len: 22, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081261, - name_start: 25952, + name_start: 26588, name_len: 22, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081262, - name_start: 25974, + name_start: 26610, name_len: 27, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081263, - name_start: 26001, + name_start: 26637, name_len: 27, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081264, - name_start: 26028, + name_start: 26664, name_len: 24, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081265, - name_start: 26052, + name_start: 26688, name_len: 24, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081266, - name_start: 26076, + name_start: 26712, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081267, - name_start: 26087, + name_start: 26723, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081268, - name_start: 26100, + name_start: 26736, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081269, - name_start: 26110, + name_start: 26746, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008126a, - name_start: 26122, + name_start: 26758, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008126b, - name_start: 26134, + name_start: 26770, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008126c, - name_start: 26150, + name_start: 26786, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008126d, - name_start: 26163, + name_start: 26799, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008126e, - name_start: 26176, + name_start: 26812, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008126f, - name_start: 26189, + name_start: 26825, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081270, - name_start: 26199, + name_start: 26835, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081271, - name_start: 26215, + name_start: 26851, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081272, - name_start: 26229, + name_start: 26865, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081273, - name_start: 26244, + name_start: 26880, name_len: 7, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081274, - name_start: 26251, + name_start: 26887, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081275, - name_start: 26261, + name_start: 26897, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081276, - name_start: 26276, + name_start: 26912, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081277, - name_start: 26291, + name_start: 26927, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081278, - name_start: 26299, + name_start: 26935, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081279, - name_start: 26319, + name_start: 26955, name_len: 23, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008127a, - name_start: 26342, + name_start: 26978, name_len: 23, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008127b, - name_start: 26365, + name_start: 27001, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008127c, - name_start: 26380, + name_start: 27016, name_len: 19, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008127d, - name_start: 26399, + name_start: 27035, name_len: 25, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008127e, - name_start: 26424, + name_start: 27060, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008127f, - name_start: 26440, + name_start: 27076, name_len: 7, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081280, - name_start: 26447, + name_start: 27083, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081281, - name_start: 26459, + name_start: 27095, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081282, - name_start: 26475, + name_start: 27111, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081283, - name_start: 26495, + name_start: 27131, name_len: 18, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081284, - name_start: 26513, + name_start: 27149, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081285, - name_start: 26529, + name_start: 27165, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081286, - name_start: 26549, + name_start: 27185, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081287, - name_start: 26565, + name_start: 27201, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081288, - name_start: 26580, + name_start: 27216, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081290, - name_start: 26591, + name_start: 27227, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081291, - name_start: 26601, + name_start: 27237, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081292, - name_start: 26611, + name_start: 27247, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081293, - name_start: 26621, + name_start: 27257, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081294, - name_start: 26631, + name_start: 27267, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081295, - name_start: 26641, + name_start: 27277, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081296, - name_start: 26651, + name_start: 27287, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081297, - name_start: 26661, + name_start: 27297, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081298, - name_start: 26671, + name_start: 27307, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x10081299, - name_start: 26681, + name_start: 27317, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008129a, - name_start: 26692, + name_start: 27328, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008129b, - name_start: 26703, + name_start: 27339, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008129c, - name_start: 26714, + name_start: 27350, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008129d, - name_start: 26725, + name_start: 27361, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008129e, - name_start: 26736, + name_start: 27372, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008129f, - name_start: 26747, + name_start: 27383, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a0, - name_start: 26758, + name_start: 27394, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a1, - name_start: 26769, + name_start: 27405, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a2, - name_start: 26780, + name_start: 27416, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a3, - name_start: 26791, + name_start: 27427, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a4, - name_start: 26802, + name_start: 27438, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a5, - name_start: 26813, + name_start: 27449, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a6, - name_start: 26824, + name_start: 27460, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a7, - name_start: 26835, + name_start: 27471, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a8, - name_start: 26846, + name_start: 27482, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812a9, - name_start: 26857, + name_start: 27493, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812aa, - name_start: 26868, + name_start: 27504, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812ab, - name_start: 26879, + name_start: 27515, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812ac, - name_start: 26890, + name_start: 27526, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812ad, - name_start: 26901, + name_start: 27537, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812b0, - name_start: 26912, + name_start: 27548, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812b1, - name_start: 26932, + name_start: 27568, name_len: 19, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812b2, - name_start: 26951, + name_start: 27587, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812b3, - name_start: 26971, + name_start: 27607, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812b4, - name_start: 26987, + name_start: 27623, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812b5, - name_start: 27003, + name_start: 27639, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812b8, - name_start: 27019, + name_start: 27655, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812b9, - name_start: 27034, + name_start: 27670, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812ba, - name_start: 27049, + name_start: 27685, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812bb, - name_start: 27064, + name_start: 27700, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x100812bc, - name_start: 27079, + name_start: 27715, name_len: 15, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x100812bd, + name_start: 27730, + name_len: 19, + flags: 0, + }, KeysymData { keysym_or_definitive_idx: 0x1008fe01, - name_start: 27094, + name_start: 27749, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe02, - name_start: 27109, + name_start: 27764, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe03, - name_start: 27124, + name_start: 27779, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe04, - name_start: 27139, + name_start: 27794, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe05, - name_start: 27154, + name_start: 27809, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe06, - name_start: 27169, + name_start: 27824, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe07, - name_start: 27184, + name_start: 27839, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe08, - name_start: 27199, + name_start: 27854, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe09, - name_start: 27214, + name_start: 27869, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe0a, - name_start: 27229, + name_start: 27884, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe0b, - name_start: 27245, + name_start: 27900, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe0c, - name_start: 27261, + name_start: 27916, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe20, - name_start: 27277, + name_start: 27932, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe21, - name_start: 27287, + name_start: 27942, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe22, - name_start: 27300, + name_start: 27955, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe23, - name_start: 27314, + name_start: 27969, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe24, - name_start: 27328, + name_start: 27983, name_len: 17, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008fe25, - name_start: 27345, + name_start: 28000, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff01, - name_start: 27360, + name_start: 28015, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff02, - name_start: 27372, + name_start: 28027, name_len: 19, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff03, - name_start: 27391, + name_start: 28046, name_len: 21, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff04, - name_start: 27412, + name_start: 28067, name_len: 17, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff05, - name_start: 27429, + name_start: 28084, name_len: 19, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff06, - name_start: 27448, + name_start: 28103, name_len: 21, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff07, - name_start: 27469, + name_start: 28124, name_len: 22, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff10, - name_start: 27491, + name_start: 28146, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff11, - name_start: 27502, + name_start: 28157, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff12, - name_start: 27522, + name_start: 28177, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff13, - name_start: 27535, + name_start: 28190, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff14, - name_start: 27555, + name_start: 28210, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff15, - name_start: 27568, + name_start: 28223, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff16, - name_start: 27581, + name_start: 28236, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff17, - name_start: 27594, + name_start: 28249, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff18, - name_start: 27607, + name_start: 28262, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff19, - name_start: 27619, + name_start: 28274, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff1a, - name_start: 27627, + name_start: 28282, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff1b, - name_start: 27636, + name_start: 28291, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff1c, - name_start: 27646, + name_start: 28301, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff1d, - name_start: 27661, + name_start: 28316, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff1e, - name_start: 27675, + name_start: 28330, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff1f, - name_start: 27683, + name_start: 28338, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff20, - name_start: 27695, + name_start: 28350, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff21, - name_start: 27707, + name_start: 28362, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff22, - name_start: 27720, + name_start: 28375, name_len: 18, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff23, - name_start: 27738, + name_start: 28393, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff24, - name_start: 27750, + name_start: 28405, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff25, - name_start: 27764, + name_start: 28419, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff26, - name_start: 27779, + name_start: 28434, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff27, - name_start: 27787, + name_start: 28442, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff28, - name_start: 27798, + name_start: 28453, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff29, - name_start: 27806, + name_start: 28461, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff2a, - name_start: 27817, + name_start: 28472, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff2b, - name_start: 27829, + name_start: 28484, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff2c, - name_start: 27839, + name_start: 28494, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff2d, - name_start: 27848, + name_start: 28503, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff2e, - name_start: 27863, + name_start: 28518, name_len: 7, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff2f, - name_start: 27870, + name_start: 28525, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff30, - name_start: 27879, + name_start: 28534, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff31, - name_start: 27892, + name_start: 28547, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff32, - name_start: 27906, + name_start: 28561, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff33, - name_start: 27920, + name_start: 28575, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff34, - name_start: 27934, + name_start: 28589, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff35, - name_start: 27948, + name_start: 28603, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff36, - name_start: 27961, + name_start: 28616, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff37, - name_start: 27969, + name_start: 28624, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff38, - name_start: 27980, + name_start: 28635, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff39, - name_start: 27991, + name_start: 28646, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff3a, - name_start: 28006, + name_start: 28661, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff3b, - name_start: 28018, + name_start: 28673, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff3c, - name_start: 28038, + name_start: 28693, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff3d, - name_start: 28049, + name_start: 28704, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff3e, - name_start: 28062, + name_start: 28717, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff3f, - name_start: 28077, + name_start: 28732, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff40, - name_start: 28092, + name_start: 28747, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff41, - name_start: 28103, + name_start: 28758, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff42, - name_start: 28114, + name_start: 28769, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff43, - name_start: 28125, + name_start: 28780, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff44, - name_start: 28136, + name_start: 28791, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff45, - name_start: 28147, + name_start: 28802, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff46, - name_start: 28158, + name_start: 28813, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff47, - name_start: 28169, + name_start: 28824, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff48, - name_start: 28180, + name_start: 28835, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff49, - name_start: 28191, + name_start: 28846, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff4a, - name_start: 28202, + name_start: 28857, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff4b, - name_start: 28213, + name_start: 28868, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff4c, - name_start: 28224, + name_start: 28879, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff4d, - name_start: 28235, + name_start: 28890, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff4e, - name_start: 28246, + name_start: 28901, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff4f, - name_start: 28257, + name_start: 28912, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff50, - name_start: 28268, + name_start: 28923, name_len: 19, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff51, - name_start: 28287, + name_start: 28942, name_len: 20, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff52, - name_start: 28307, + name_start: 28962, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff53, - name_start: 28315, + name_start: 28970, name_len: 6, flags: 0, }, + KeysymData { + keysym_or_definitive_idx: 0x000009e5, + name_start: 28976, + name_len: 17, + flags: 0 | IS_SECONDARY_IDX, + }, KeysymData { keysym_or_definitive_idx: 0x1008ff54, - name_start: 28321, + name_start: 28993, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff55, - name_start: 28335, + name_start: 29007, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff56, - name_start: 28344, + name_start: 29016, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff57, - name_start: 28353, + name_start: 29025, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff58, - name_start: 28361, + name_start: 29033, name_len: 7, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff59, - name_start: 28368, + name_start: 29040, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff5a, - name_start: 28379, + name_start: 29051, name_len: 7, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff5b, - name_start: 28386, + name_start: 29058, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff5c, - name_start: 28399, + name_start: 29071, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff5d, - name_start: 28408, + name_start: 29080, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff5e, - name_start: 28420, + name_start: 29092, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff5f, - name_start: 28428, + name_start: 29100, name_len: 6, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff60, - name_start: 28434, + name_start: 29106, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff61, - name_start: 28444, + name_start: 29116, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff62, - name_start: 28454, + name_start: 29126, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff63, - name_start: 28464, + name_start: 29136, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff65, - name_start: 28475, + name_start: 29147, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff66, - name_start: 28485, + name_start: 29157, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff67, - name_start: 28495, + name_start: 29167, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff68, - name_start: 28506, + name_start: 29178, name_len: 7, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff69, - name_start: 28513, + name_start: 29185, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff6a, - name_start: 28521, + name_start: 29193, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff6b, - name_start: 28535, + name_start: 29207, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff6c, - name_start: 28543, + name_start: 29215, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff6d, - name_start: 28553, + name_start: 29225, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff6e, - name_start: 28562, + name_start: 29234, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff70, - name_start: 28571, + name_start: 29243, name_len: 5, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff72, - name_start: 28576, + name_start: 29248, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff73, - name_start: 28585, + name_start: 29257, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff74, - name_start: 28595, + name_start: 29267, name_len: 17, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff75, - name_start: 28612, + name_start: 29284, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff76, - name_start: 28626, + name_start: 29298, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff77, - name_start: 28640, + name_start: 29312, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff78, - name_start: 28648, + name_start: 29320, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff79, - name_start: 28660, + name_start: 29332, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff7a, - name_start: 28674, + name_start: 29346, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff7b, - name_start: 28689, + name_start: 29361, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff7c, - name_start: 28697, + name_start: 29369, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff7d, - name_start: 28706, + name_start: 29378, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff7e, - name_start: 28721, + name_start: 29393, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff7f, - name_start: 28732, + name_start: 29404, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff80, - name_start: 28744, + name_start: 29416, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff81, - name_start: 28756, + name_start: 29428, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff82, - name_start: 28765, + name_start: 29437, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff84, - name_start: 28775, + name_start: 29447, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff85, - name_start: 28785, + name_start: 29457, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff86, - name_start: 28796, + name_start: 29468, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff87, - name_start: 28807, + name_start: 29479, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff88, - name_start: 28816, + name_start: 29488, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff89, - name_start: 28831, + name_start: 29503, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff8a, - name_start: 28839, + name_start: 29511, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff8b, - name_start: 28847, + name_start: 29519, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff8c, - name_start: 28857, + name_start: 29529, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff8d, - name_start: 28868, + name_start: 29540, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff8e, - name_start: 28876, + name_start: 29548, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff8f, - name_start: 28889, + name_start: 29561, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff90, - name_start: 28899, + name_start: 29571, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff91, - name_start: 28914, + name_start: 29586, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff92, - name_start: 28926, + name_start: 29598, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff93, - name_start: 28935, + name_start: 29607, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff94, - name_start: 28946, + name_start: 29618, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff95, - name_start: 28959, + name_start: 29631, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff96, - name_start: 28967, + name_start: 29639, name_len: 7, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff97, - name_start: 28974, + name_start: 29646, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff98, - name_start: 28990, + name_start: 29662, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff99, - name_start: 29005, + name_start: 29677, name_len: 19, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff9a, - name_start: 29024, + name_start: 29696, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff9b, - name_start: 29036, + name_start: 29708, name_len: 19, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff9c, - name_start: 29055, + name_start: 29727, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff9d, - name_start: 29069, + name_start: 29741, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff9e, - name_start: 29082, + name_start: 29754, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ff9f, - name_start: 29098, + name_start: 29770, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa0, - name_start: 29106, + name_start: 29778, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa1, - name_start: 29116, + name_start: 29788, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa2, - name_start: 29124, + name_start: 29796, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa3, - name_start: 29135, + name_start: 29807, name_len: 7, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa4, - name_start: 29142, + name_start: 29814, name_len: 9, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa5, - name_start: 29151, + name_start: 29823, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa6, - name_start: 29161, + name_start: 29833, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa7, - name_start: 29169, + name_start: 29841, name_len: 11, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa8, - name_start: 29180, + name_start: 29852, name_len: 13, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffa9, - name_start: 29193, + name_start: 29865, name_len: 18, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb0, - name_start: 29211, + name_start: 29883, name_len: 14, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb1, - name_start: 29225, + name_start: 29897, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb2, - name_start: 29240, + name_start: 29912, name_len: 16, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb3, - name_start: 29256, + name_start: 29928, name_len: 12, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb4, - name_start: 29268, + name_start: 29940, name_len: 8, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb5, - name_start: 29276, + name_start: 29948, name_len: 10, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb6, - name_start: 29286, + name_start: 29958, name_len: 15, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb7, - name_start: 29301, + name_start: 29973, name_len: 22, flags: 0, }, KeysymData { keysym_or_definitive_idx: 0x1008ffb8, - name_start: 29323, + name_start: 29995, name_len: 14, flags: 0, }, @@ -23928,24 +24210,74 @@ pub mod syms { pub const SunVideoRaiseBrightness: Keysym = Keysym(0x1005ff7c); /// SunPowerSwitchShift pub const SunPowerSwitchShift: Keysym = Keysym(0x1005ff7d); + /// XF86Sport + pub const XF86Sport: Keysym = Keysym(0x100810dc); /// XF86BrightnessAuto pub const XF86BrightnessAuto: Keysym = Keysym(0x100810f4); + /// XF86MonBrightnessAuto + pub const XF86MonBrightnessAuto: Keysym = Keysym(0x100810f4); /// XF86DisplayOff pub const XF86DisplayOff: Keysym = Keysym(0x100810f5); + /// XF86OK + pub const XF86OK: Keysym = Keysym(0x10081160); + /// XF86GoTo + pub const XF86GoTo: Keysym = Keysym(0x10081162); /// XF86Info pub const XF86Info: Keysym = Keysym(0x10081166); + /// XF86VendorLogo + pub const XF86VendorLogo: Keysym = Keysym(0x10081168); + /// XF86MediaSelectProgramGuide + pub const XF86MediaSelectProgramGuide: Keysym = Keysym(0x1008116a); + /// XF86MediaSelectHome + pub const XF86MediaSelectHome: Keysym = Keysym(0x1008116e); + /// XF86MediaLanguageMenu + pub const XF86MediaLanguageMenu: Keysym = Keysym(0x10081170); + /// XF86MediaTitleMenu + pub const XF86MediaTitleMenu: Keysym = Keysym(0x10081171); + /// XF86AudioChannelMode + pub const XF86AudioChannelMode: Keysym = Keysym(0x10081175); /// XF86AspectRatio pub const XF86AspectRatio: Keysym = Keysym(0x10081177); + /// XF86MediaSelectPC + pub const XF86MediaSelectPC: Keysym = Keysym(0x10081178); + /// XF86MediaSelectTV + pub const XF86MediaSelectTV: Keysym = Keysym(0x10081179); + /// XF86MediaSelectCable + pub const XF86MediaSelectCable: Keysym = Keysym(0x1008117a); + /// XF86MediaSelectVCR + pub const XF86MediaSelectVCR: Keysym = Keysym(0x1008117b); + /// XF86MediaSelectVCRPlus + pub const XF86MediaSelectVCRPlus: Keysym = Keysym(0x1008117c); + /// XF86MediaSelectSatellite + pub const XF86MediaSelectSatellite: Keysym = Keysym(0x1008117d); + /// XF86MediaSelectTape + pub const XF86MediaSelectTape: Keysym = Keysym(0x10081180); + /// XF86MediaSelectRadio + pub const XF86MediaSelectRadio: Keysym = Keysym(0x10081181); + /// XF86MediaSelectTuner + pub const XF86MediaSelectTuner: Keysym = Keysym(0x10081182); + /// XF86MediaPlayer + pub const XF86MediaPlayer: Keysym = Keysym(0x10081183); + /// XF86MediaSelectTeletext + pub const XF86MediaSelectTeletext: Keysym = Keysym(0x10081184); /// XF86DVD pub const XF86DVD: Keysym = Keysym(0x10081185); + /// XF86MediaSelectDVD + pub const XF86MediaSelectDVD: Keysym = Keysym(0x10081185); + /// XF86MediaSelectAuxiliary + pub const XF86MediaSelectAuxiliary: Keysym = Keysym(0x10081186); /// XF86Audio pub const XF86Audio: Keysym = Keysym(0x10081188); /// XF86ChannelUp pub const XF86ChannelUp: Keysym = Keysym(0x10081192); /// XF86ChannelDown pub const XF86ChannelDown: Keysym = Keysym(0x10081193); + /// XF86MediaPlaySlow + pub const XF86MediaPlaySlow: Keysym = Keysym(0x10081199); /// XF86Break pub const XF86Break: Keysym = Keysym(0x1008119b); + /// XF86NumberEntryMode + pub const XF86NumberEntryMode: Keysym = Keysym(0x1008119d); /// XF86VideoPhone pub const XF86VideoPhone: Keysym = Keysym(0x100811a0); /// XF86ZoomReset @@ -23982,10 +24314,50 @@ pub mod syms { pub const XF86PickupPhone: Keysym = Keysym(0x100811bd); /// XF86HangupPhone pub const XF86HangupPhone: Keysym = Keysym(0x100811be); + /// XF86LinkPhone + pub const XF86LinkPhone: Keysym = Keysym(0x100811bf); /// XF86Fn pub const XF86Fn: Keysym = Keysym(0x100811d0); /// XF86Fn_Esc pub const XF86Fn_Esc: Keysym = Keysym(0x100811d1); + /// XF86Fn_F1 + pub const XF86Fn_F1: Keysym = Keysym(0x100811d2); + /// XF86Fn_F2 + pub const XF86Fn_F2: Keysym = Keysym(0x100811d3); + /// XF86Fn_F3 + pub const XF86Fn_F3: Keysym = Keysym(0x100811d4); + /// XF86Fn_F4 + pub const XF86Fn_F4: Keysym = Keysym(0x100811d5); + /// XF86Fn_F5 + pub const XF86Fn_F5: Keysym = Keysym(0x100811d6); + /// XF86Fn_F6 + pub const XF86Fn_F6: Keysym = Keysym(0x100811d7); + /// XF86Fn_F7 + pub const XF86Fn_F7: Keysym = Keysym(0x100811d8); + /// XF86Fn_F8 + pub const XF86Fn_F8: Keysym = Keysym(0x100811d9); + /// XF86Fn_F9 + pub const XF86Fn_F9: Keysym = Keysym(0x100811da); + /// XF86Fn_F10 + pub const XF86Fn_F10: Keysym = Keysym(0x100811db); + /// XF86Fn_F11 + pub const XF86Fn_F11: Keysym = Keysym(0x100811dc); + /// XF86Fn_F12 + pub const XF86Fn_F12: Keysym = Keysym(0x100811dd); + /// XF86Fn_1 + pub const XF86Fn_1: Keysym = Keysym(0x100811de); + /// XF86Fn_2 + pub const XF86Fn_2: Keysym = Keysym(0x100811df); + /// XF86Fn_D + pub const XF86Fn_D: Keysym = Keysym(0x100811e0); + /// XF86Fn_E + pub const XF86Fn_E: Keysym = Keysym(0x100811e1); + /// XF86Fn_F + pub const XF86Fn_F: Keysym = Keysym(0x100811e2); + /// XF86Fn_S + pub const XF86Fn_S: Keysym = Keysym(0x100811e3); + /// XF86Fn_B + pub const XF86Fn_B: Keysym = Keysym(0x100811e4); /// XF86FnRightShift pub const XF86FnRightShift: Keysym = Keysym(0x100811e5); /// XF86Numeric0 @@ -24246,6 +24618,8 @@ pub mod syms { pub const XF86KbdLcdMenu4: Keysym = Keysym(0x100812bb); /// XF86KbdLcdMenu5 pub const XF86KbdLcdMenu5: Keysym = Keysym(0x100812bc); + /// XF86PerformanceMode + pub const XF86PerformanceMode: Keysym = Keysym(0x100812bd); /// XF86Switch_VT_1 pub const XF86Switch_VT_1: Keysym = Keysym(0x1008fe01); /// XF86Switch_VT_2 @@ -24432,6 +24806,8 @@ pub mod syms { pub const XF86Book: Keysym = Keysym(0x1008ff52); /// XF86CD pub const XF86CD: Keysym = Keysym(0x1008ff53); + /// XF86MediaSelectCD + pub const XF86MediaSelectCD: Keysym = Keysym(0x1008ff53); /// XF86Calculater pub const XF86Calculater: Keysym = Keysym(0x1008ff54); /// XF86Clear diff --git a/kbvm/src/keysym/tests.rs b/kbvm/src/keysym/tests.rs index b516364..26a90a5 100644 --- a/kbvm/src/keysym/tests.rs +++ b/kbvm/src/keysym/tests.rs @@ -26,15 +26,8 @@ fn from_char() { }; let l = Keysym::from_char(c).0; let r = xkb_utf32_to_keysym(c as _); - if matches!(c, '─' | '│' | '┌' | '○') { - // xkbcommon returns deprecated keysyms for these characters - if l == r { - panic!("Expected different output for {c:?} but output is 0x{l:x}"); - } - } else { - if l != r { - panic!("for {c:?}: self=0x{l:x}, xkbcommon=0x{r:x}"); - } + if l != r { + panic!("for {c:?}: self=0x{l:x}, xkbcommon=0x{r:x}"); } } } diff --git a/libxkbcommon b/libxkbcommon index e0130e3..6876e99 160000 --- a/libxkbcommon +++ b/libxkbcommon @@ -1 +1 @@ -Subproject commit e0130e307910d383d38ec14dc000ba84102207c3 +Subproject commit 6876e99da3fa98228dbb2457776a1b4bf380b23c