644 lines · 33.0 KB · Java
RawDownload
package sun.awt; import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.awt.event.KeyEvent; public class ExtendedKeyCodes {    /**     * ATTN: These are the readonly hashes with load factor == 1;     * adding a value, please set the inital capacity to exact number of items     * or higher.     */     // Keycodes declared in KeyEvent.java with corresponding Unicode values.     private final static HashMap<Integer, Integer>  regularKeyCodesMap =                                          new HashMap<Integer,Integer>(98, 1.0f);      // Keycodes derived from Unicode values. Here should be collected codes     // for characters appearing on the primary layer of at least one     // known keyboard layout. For instance, sterling sign is on the primary layer     // of the Mac Italian layout.     private final static HashSet<Integer> extendedKeyCodesSet =                                                  new HashSet<Integer>(501, 1.0f);     final public static int getExtendedKeyCodeForChar( int c ) {         int uc = Character.toUpperCase( c );         int lc = Character.toLowerCase( c );         if (regularKeyCodesMap.containsKey( c )) {             if(regularKeyCodesMap.containsKey(uc)) {                 return regularKeyCodesMap.get( uc );             }             return regularKeyCodesMap.get( c );         }         uc += 0x01000000;         lc += 0x01000000;         if (extendedKeyCodesSet.contains( uc )) {             return uc;         }else if (extendedKeyCodesSet.contains( lc )) {             return lc;         }         return KeyEvent.VK_UNDEFINED;     }     static {         regularKeyCodesMap.put(0x08, KeyEvent.VK_BACK_SPACE);         regularKeyCodesMap.put(0x09, KeyEvent.VK_TAB);         regularKeyCodesMap.put(0x0a, KeyEvent.VK_ENTER);         regularKeyCodesMap.put(0x1B, KeyEvent.VK_ESCAPE);         regularKeyCodesMap.put(0x20AC, KeyEvent.VK_EURO_SIGN);         regularKeyCodesMap.put(0x20, KeyEvent.VK_SPACE);         regularKeyCodesMap.put(0x21, KeyEvent.VK_EXCLAMATION_MARK);         regularKeyCodesMap.put(0x22, KeyEvent.VK_QUOTEDBL);         regularKeyCodesMap.put(0x23, KeyEvent.VK_NUMBER_SIGN);         regularKeyCodesMap.put(0x24, KeyEvent.VK_DOLLAR);         regularKeyCodesMap.put(0x26, KeyEvent.VK_AMPERSAND);         regularKeyCodesMap.put(0x27, KeyEvent.VK_QUOTE);         regularKeyCodesMap.put(0x28, KeyEvent.VK_LEFT_PARENTHESIS);         regularKeyCodesMap.put(0x29, KeyEvent.VK_RIGHT_PARENTHESIS);         regularKeyCodesMap.put(0x2A, KeyEvent.VK_ASTERISK);         regularKeyCodesMap.put(0x2B, KeyEvent.VK_PLUS);         regularKeyCodesMap.put(0x2C, KeyEvent.VK_COMMA);         regularKeyCodesMap.put(0x2D, KeyEvent.VK_MINUS);         regularKeyCodesMap.put(0x2E, KeyEvent.VK_PERIOD);         regularKeyCodesMap.put(0x2F, KeyEvent.VK_SLASH);         regularKeyCodesMap.put(0x30, KeyEvent.VK_0);         regularKeyCodesMap.put(0x31, KeyEvent.VK_1);         regularKeyCodesMap.put(0x32, KeyEvent.VK_2);         regularKeyCodesMap.put(0x33, KeyEvent.VK_3);         regularKeyCodesMap.put(0x34, KeyEvent.VK_4);         regularKeyCodesMap.put(0x35, KeyEvent.VK_5);         regularKeyCodesMap.put(0x36, KeyEvent.VK_6);         regularKeyCodesMap.put(0x37, KeyEvent.VK_7);         regularKeyCodesMap.put(0x38, KeyEvent.VK_8);         regularKeyCodesMap.put(0x39, KeyEvent.VK_9);         regularKeyCodesMap.put(0x3A, KeyEvent.VK_COLON);         regularKeyCodesMap.put(0x3B, KeyEvent.VK_SEMICOLON);         regularKeyCodesMap.put(0x3C, KeyEvent.VK_LESS);         regularKeyCodesMap.put(0x3D, KeyEvent.VK_EQUALS);         regularKeyCodesMap.put(0x3E, KeyEvent.VK_GREATER);         regularKeyCodesMap.put(0x40, KeyEvent.VK_AT);         regularKeyCodesMap.put(0x41, KeyEvent.VK_A);         regularKeyCodesMap.put(0x42, KeyEvent.VK_B);         regularKeyCodesMap.put(0x43, KeyEvent.VK_C);         regularKeyCodesMap.put(0x44, KeyEvent.VK_D);         regularKeyCodesMap.put(0x45, KeyEvent.VK_E);         regularKeyCodesMap.put(0x46, KeyEvent.VK_F);         regularKeyCodesMap.put(0x47, KeyEvent.VK_G);         regularKeyCodesMap.put(0x48, KeyEvent.VK_H);         regularKeyCodesMap.put(0x49, KeyEvent.VK_I);         regularKeyCodesMap.put(0x4A, KeyEvent.VK_J);         regularKeyCodesMap.put(0x4B, KeyEvent.VK_K);         regularKeyCodesMap.put(0x4C, KeyEvent.VK_L);         regularKeyCodesMap.put(0x4D, KeyEvent.VK_M);         regularKeyCodesMap.put(0x4E, KeyEvent.VK_N);         regularKeyCodesMap.put(0x4F, KeyEvent.VK_O);         regularKeyCodesMap.put(0x50, KeyEvent.VK_P);         regularKeyCodesMap.put(0x51, KeyEvent.VK_Q);         regularKeyCodesMap.put(0x52, KeyEvent.VK_R);         regularKeyCodesMap.put(0x53, KeyEvent.VK_S);         regularKeyCodesMap.put(0x54, KeyEvent.VK_T);         regularKeyCodesMap.put(0x55, KeyEvent.VK_U);         regularKeyCodesMap.put(0x56, KeyEvent.VK_V);         regularKeyCodesMap.put(0x57, KeyEvent.VK_W);         regularKeyCodesMap.put(0x58, KeyEvent.VK_X);         regularKeyCodesMap.put(0x59, KeyEvent.VK_Y);         regularKeyCodesMap.put(0x5A, KeyEvent.VK_Z);         regularKeyCodesMap.put(0x5B, KeyEvent.VK_OPEN_BRACKET);         regularKeyCodesMap.put(0x5C, KeyEvent.VK_BACK_SLASH);         regularKeyCodesMap.put(0x5D, KeyEvent.VK_CLOSE_BRACKET);         regularKeyCodesMap.put(0x5E, KeyEvent.VK_CIRCUMFLEX);         regularKeyCodesMap.put(0x5F, KeyEvent.VK_UNDERSCORE);         regularKeyCodesMap.put(0x60, KeyEvent.VK_BACK_QUOTE);         regularKeyCodesMap.put(0x61, KeyEvent.VK_A);         regularKeyCodesMap.put(0x62, KeyEvent.VK_B);         regularKeyCodesMap.put(0x63, KeyEvent.VK_C);         regularKeyCodesMap.put(0x64, KeyEvent.VK_D);         regularKeyCodesMap.put(0x65, KeyEvent.VK_E);         regularKeyCodesMap.put(0x66, KeyEvent.VK_F);         regularKeyCodesMap.put(0x67, KeyEvent.VK_G);         regularKeyCodesMap.put(0x68, KeyEvent.VK_H);         regularKeyCodesMap.put(0x69, KeyEvent.VK_I);         regularKeyCodesMap.put(0x6A, KeyEvent.VK_J);         regularKeyCodesMap.put(0x6B, KeyEvent.VK_K);         regularKeyCodesMap.put(0x6C, KeyEvent.VK_L);         regularKeyCodesMap.put(0x6D, KeyEvent.VK_M);         regularKeyCodesMap.put(0x6E, KeyEvent.VK_N);         regularKeyCodesMap.put(0x6F, KeyEvent.VK_O);         regularKeyCodesMap.put(0x70, KeyEvent.VK_P);         regularKeyCodesMap.put(0x71, KeyEvent.VK_Q);         regularKeyCodesMap.put(0x72, KeyEvent.VK_R);         regularKeyCodesMap.put(0x73, KeyEvent.VK_S);         regularKeyCodesMap.put(0x74, KeyEvent.VK_T);         regularKeyCodesMap.put(0x75, KeyEvent.VK_U);         regularKeyCodesMap.put(0x76, KeyEvent.VK_V);         regularKeyCodesMap.put(0x77, KeyEvent.VK_W);         regularKeyCodesMap.put(0x78, KeyEvent.VK_X);         regularKeyCodesMap.put(0x79, KeyEvent.VK_Y);         regularKeyCodesMap.put(0x7A, KeyEvent.VK_Z);         regularKeyCodesMap.put(0x7B, KeyEvent.VK_BRACELEFT);         regularKeyCodesMap.put(0x7D, KeyEvent.VK_BRACERIGHT);         regularKeyCodesMap.put(0x7F, KeyEvent.VK_DELETE);         regularKeyCodesMap.put(0xA1, KeyEvent.VK_INVERTED_EXCLAMATION_MARK);          extendedKeyCodesSet.add(0x01000000+0x0060);         extendedKeyCodesSet.add(0x01000000+0x007C);         extendedKeyCodesSet.add(0x01000000+0x007E);         extendedKeyCodesSet.add(0x01000000+0x00A2);         extendedKeyCodesSet.add(0x01000000+0x00A3);         extendedKeyCodesSet.add(0x01000000+0x00A5);         extendedKeyCodesSet.add(0x01000000+0x00A7);         extendedKeyCodesSet.add(0x01000000+0x00A8);         extendedKeyCodesSet.add(0x01000000+0x00AB);         extendedKeyCodesSet.add(0x01000000+0x00B0);         extendedKeyCodesSet.add(0x01000000+0x00B1);         extendedKeyCodesSet.add(0x01000000+0x00B2);         extendedKeyCodesSet.add(0x01000000+0x00B3);         extendedKeyCodesSet.add(0x01000000+0x00B4);         extendedKeyCodesSet.add(0x01000000+0x00B5);         extendedKeyCodesSet.add(0x01000000+0x00B6);         extendedKeyCodesSet.add(0x01000000+0x00B7);         extendedKeyCodesSet.add(0x01000000+0x00B9);         extendedKeyCodesSet.add(0x01000000+0x00BA);         extendedKeyCodesSet.add(0x01000000+0x00BB);         extendedKeyCodesSet.add(0x01000000+0x00BC);         extendedKeyCodesSet.add(0x01000000+0x00BD);         extendedKeyCodesSet.add(0x01000000+0x00BE);         extendedKeyCodesSet.add(0x01000000+0x00BF);         extendedKeyCodesSet.add(0x01000000+0x00C4);         extendedKeyCodesSet.add(0x01000000+0x00C5);         extendedKeyCodesSet.add(0x01000000+0x00C6);         extendedKeyCodesSet.add(0x01000000+0x00C7);         extendedKeyCodesSet.add(0x01000000+0x00D1);         extendedKeyCodesSet.add(0x01000000+0x00D6);         extendedKeyCodesSet.add(0x01000000+0x00D7);         extendedKeyCodesSet.add(0x01000000+0x00D8);         extendedKeyCodesSet.add(0x01000000+0x00DF);         extendedKeyCodesSet.add(0x01000000+0x00E0);         extendedKeyCodesSet.add(0x01000000+0x00E1);         extendedKeyCodesSet.add(0x01000000+0x00E2);         extendedKeyCodesSet.add(0x01000000+0x00E4);         extendedKeyCodesSet.add(0x01000000+0x00E5);         extendedKeyCodesSet.add(0x01000000+0x00E6);         extendedKeyCodesSet.add(0x01000000+0x00E7);         extendedKeyCodesSet.add(0x01000000+0x00E8);         extendedKeyCodesSet.add(0x01000000+0x00E9);         extendedKeyCodesSet.add(0x01000000+0x00EA);         extendedKeyCodesSet.add(0x01000000+0x00EB);         extendedKeyCodesSet.add(0x01000000+0x00EC);         extendedKeyCodesSet.add(0x01000000+0x00ED);         extendedKeyCodesSet.add(0x01000000+0x00EE);         extendedKeyCodesSet.add(0x01000000+0x00F0);         extendedKeyCodesSet.add(0x01000000+0x00F1);         extendedKeyCodesSet.add(0x01000000+0x00F2);         extendedKeyCodesSet.add(0x01000000+0x00F3);         extendedKeyCodesSet.add(0x01000000+0x00F4);         extendedKeyCodesSet.add(0x01000000+0x00F5);         extendedKeyCodesSet.add(0x01000000+0x00F6);         extendedKeyCodesSet.add(0x01000000+0x00F7);         extendedKeyCodesSet.add(0x01000000+0x00F8);         extendedKeyCodesSet.add(0x01000000+0x00F9);         extendedKeyCodesSet.add(0x01000000+0x00FA);         extendedKeyCodesSet.add(0x01000000+0x00FB);         extendedKeyCodesSet.add(0x01000000+0x00FC);         extendedKeyCodesSet.add(0x01000000+0x00FD);         extendedKeyCodesSet.add(0x01000000+0x00FE);         extendedKeyCodesSet.add(0x01000000+0x0105);         extendedKeyCodesSet.add(0x01000000+0x02DB);         extendedKeyCodesSet.add(0x01000000+0x0142);         extendedKeyCodesSet.add(0x01000000+0x013E);         extendedKeyCodesSet.add(0x01000000+0x015B);         extendedKeyCodesSet.add(0x01000000+0x0161);         extendedKeyCodesSet.add(0x01000000+0x015F);         extendedKeyCodesSet.add(0x01000000+0x0165);         extendedKeyCodesSet.add(0x01000000+0x017E);         extendedKeyCodesSet.add(0x01000000+0x017C);         extendedKeyCodesSet.add(0x01000000+0x0103);         extendedKeyCodesSet.add(0x01000000+0x0107);         extendedKeyCodesSet.add(0x01000000+0x010D);         extendedKeyCodesSet.add(0x01000000+0x0119);         extendedKeyCodesSet.add(0x01000000+0x011B);         extendedKeyCodesSet.add(0x01000000+0x0111);         extendedKeyCodesSet.add(0x01000000+0x0148);         extendedKeyCodesSet.add(0x01000000+0x0151);         extendedKeyCodesSet.add(0x01000000+0x0171);         extendedKeyCodesSet.add(0x01000000+0x0159);         extendedKeyCodesSet.add(0x01000000+0x016F);         extendedKeyCodesSet.add(0x01000000+0x0163);         extendedKeyCodesSet.add(0x01000000+0x02D9);         extendedKeyCodesSet.add(0x01000000+0x0130);         extendedKeyCodesSet.add(0x01000000+0x0127);         extendedKeyCodesSet.add(0x01000000+0x0125);         extendedKeyCodesSet.add(0x01000000+0x0131);         extendedKeyCodesSet.add(0x01000000+0x011F);         extendedKeyCodesSet.add(0x01000000+0x0135);         extendedKeyCodesSet.add(0x01000000+0x010B);         extendedKeyCodesSet.add(0x01000000+0x0109);         extendedKeyCodesSet.add(0x01000000+0x0121);         extendedKeyCodesSet.add(0x01000000+0x011D);         extendedKeyCodesSet.add(0x01000000+0x016D);         extendedKeyCodesSet.add(0x01000000+0x015D);         extendedKeyCodesSet.add(0x01000000+0x0138);         extendedKeyCodesSet.add(0x01000000+0x0157);         extendedKeyCodesSet.add(0x01000000+0x013C);         extendedKeyCodesSet.add(0x01000000+0x0113);         extendedKeyCodesSet.add(0x01000000+0x0123);         extendedKeyCodesSet.add(0x01000000+0x0167);         extendedKeyCodesSet.add(0x01000000+0x014B);         extendedKeyCodesSet.add(0x01000000+0x0101);         extendedKeyCodesSet.add(0x01000000+0x012F);         extendedKeyCodesSet.add(0x01000000+0x0117);         extendedKeyCodesSet.add(0x01000000+0x012B);         extendedKeyCodesSet.add(0x01000000+0x0146);         extendedKeyCodesSet.add(0x01000000+0x014D);         extendedKeyCodesSet.add(0x01000000+0x0137);         extendedKeyCodesSet.add(0x01000000+0x0173);         extendedKeyCodesSet.add(0x01000000+0x016B);         extendedKeyCodesSet.add(0x01000000+0x0153);         extendedKeyCodesSet.add(0x01000000+0x30FC);         extendedKeyCodesSet.add(0x01000000+0x30A2);         extendedKeyCodesSet.add(0x01000000+0x30A4);         extendedKeyCodesSet.add(0x01000000+0x30A6);         extendedKeyCodesSet.add(0x01000000+0x30A8);         extendedKeyCodesSet.add(0x01000000+0x30AA);         extendedKeyCodesSet.add(0x01000000+0x30AB);         extendedKeyCodesSet.add(0x01000000+0x30AD);         extendedKeyCodesSet.add(0x01000000+0x30AF);         extendedKeyCodesSet.add(0x01000000+0x30B1);         extendedKeyCodesSet.add(0x01000000+0x30B3);         extendedKeyCodesSet.add(0x01000000+0x30B5);         extendedKeyCodesSet.add(0x01000000+0x30B7);         extendedKeyCodesSet.add(0x01000000+0x30B9);         extendedKeyCodesSet.add(0x01000000+0x30BB);         extendedKeyCodesSet.add(0x01000000+0x30BD);         extendedKeyCodesSet.add(0x01000000+0x30BF);         extendedKeyCodesSet.add(0x01000000+0x30C1);         extendedKeyCodesSet.add(0x01000000+0x30C4);         extendedKeyCodesSet.add(0x01000000+0x30C6);         extendedKeyCodesSet.add(0x01000000+0x30C8);         extendedKeyCodesSet.add(0x01000000+0x30CA);         extendedKeyCodesSet.add(0x01000000+0x30CB);         extendedKeyCodesSet.add(0x01000000+0x30CC);         extendedKeyCodesSet.add(0x01000000+0x30CD);         extendedKeyCodesSet.add(0x01000000+0x30CE);         extendedKeyCodesSet.add(0x01000000+0x30CF);         extendedKeyCodesSet.add(0x01000000+0x30D2);         extendedKeyCodesSet.add(0x01000000+0x30D5);         extendedKeyCodesSet.add(0x01000000+0x30D8);         extendedKeyCodesSet.add(0x01000000+0x30DB);         extendedKeyCodesSet.add(0x01000000+0x30DE);         extendedKeyCodesSet.add(0x01000000+0x30DF);         extendedKeyCodesSet.add(0x01000000+0x30E0);         extendedKeyCodesSet.add(0x01000000+0x30E1);         extendedKeyCodesSet.add(0x01000000+0x30E2);         extendedKeyCodesSet.add(0x01000000+0x30E4);         extendedKeyCodesSet.add(0x01000000+0x30E6);         extendedKeyCodesSet.add(0x01000000+0x30E8);         extendedKeyCodesSet.add(0x01000000+0x30E9);         extendedKeyCodesSet.add(0x01000000+0x30EA);         extendedKeyCodesSet.add(0x01000000+0x30EB);         extendedKeyCodesSet.add(0x01000000+0x30EC);         extendedKeyCodesSet.add(0x01000000+0x30ED);         extendedKeyCodesSet.add(0x01000000+0x30EF);         extendedKeyCodesSet.add(0x01000000+0x30F3);         extendedKeyCodesSet.add(0x01000000+0x309B);         extendedKeyCodesSet.add(0x01000000+0x309C);         extendedKeyCodesSet.add(0x01000000+0x06F0);         extendedKeyCodesSet.add(0x01000000+0x06F1);         extendedKeyCodesSet.add(0x01000000+0x06F2);         extendedKeyCodesSet.add(0x01000000+0x06F3);         extendedKeyCodesSet.add(0x01000000+0x06F4);         extendedKeyCodesSet.add(0x01000000+0x06F5);         extendedKeyCodesSet.add(0x01000000+0x06F6);         extendedKeyCodesSet.add(0x01000000+0x06F7);         extendedKeyCodesSet.add(0x01000000+0x06F8);         extendedKeyCodesSet.add(0x01000000+0x06F9);         extendedKeyCodesSet.add(0x01000000+0x0670);         extendedKeyCodesSet.add(0x01000000+0x067E);         extendedKeyCodesSet.add(0x01000000+0x0686);         extendedKeyCodesSet.add(0x01000000+0x060C);         extendedKeyCodesSet.add(0x01000000+0x06D4);         extendedKeyCodesSet.add(0x01000000+0x0660);         extendedKeyCodesSet.add(0x01000000+0x0661);         extendedKeyCodesSet.add(0x01000000+0x0662);         extendedKeyCodesSet.add(0x01000000+0x0663);         extendedKeyCodesSet.add(0x01000000+0x0664);         extendedKeyCodesSet.add(0x01000000+0x0665);         extendedKeyCodesSet.add(0x01000000+0x0666);         extendedKeyCodesSet.add(0x01000000+0x0667);         extendedKeyCodesSet.add(0x01000000+0x0668);         extendedKeyCodesSet.add(0x01000000+0x0669);         extendedKeyCodesSet.add(0x01000000+0x061B);         extendedKeyCodesSet.add(0x01000000+0x0621);         extendedKeyCodesSet.add(0x01000000+0x0624);         extendedKeyCodesSet.add(0x01000000+0x0626);         extendedKeyCodesSet.add(0x01000000+0x0627);         extendedKeyCodesSet.add(0x01000000+0x0628);         extendedKeyCodesSet.add(0x01000000+0x0629);         extendedKeyCodesSet.add(0x01000000+0x062A);         extendedKeyCodesSet.add(0x01000000+0x062B);         extendedKeyCodesSet.add(0x01000000+0x062C);         extendedKeyCodesSet.add(0x01000000+0x062D);         extendedKeyCodesSet.add(0x01000000+0x062E);         extendedKeyCodesSet.add(0x01000000+0x062F);         extendedKeyCodesSet.add(0x01000000+0x0630);         extendedKeyCodesSet.add(0x01000000+0x0631);         extendedKeyCodesSet.add(0x01000000+0x0632);         extendedKeyCodesSet.add(0x01000000+0x0633);         extendedKeyCodesSet.add(0x01000000+0x0634);         extendedKeyCodesSet.add(0x01000000+0x0635);         extendedKeyCodesSet.add(0x01000000+0x0636);         extendedKeyCodesSet.add(0x01000000+0x0637);         extendedKeyCodesSet.add(0x01000000+0x0638);         extendedKeyCodesSet.add(0x01000000+0x0639);         extendedKeyCodesSet.add(0x01000000+0x063A);         extendedKeyCodesSet.add(0x01000000+0x0641);         extendedKeyCodesSet.add(0x01000000+0x0642);         extendedKeyCodesSet.add(0x01000000+0x0643);         extendedKeyCodesSet.add(0x01000000+0x0644);         extendedKeyCodesSet.add(0x01000000+0x0645);         extendedKeyCodesSet.add(0x01000000+0x0646);         extendedKeyCodesSet.add(0x01000000+0x0647);         extendedKeyCodesSet.add(0x01000000+0x0648);         extendedKeyCodesSet.add(0x01000000+0x0649);         extendedKeyCodesSet.add(0x01000000+0x064A);         extendedKeyCodesSet.add(0x01000000+0x064E);         extendedKeyCodesSet.add(0x01000000+0x064F);         extendedKeyCodesSet.add(0x01000000+0x0650);         extendedKeyCodesSet.add(0x01000000+0x0652);         extendedKeyCodesSet.add(0x01000000+0x0698);         extendedKeyCodesSet.add(0x01000000+0x06A4);         extendedKeyCodesSet.add(0x01000000+0x06A9);         extendedKeyCodesSet.add(0x01000000+0x06AF);         extendedKeyCodesSet.add(0x01000000+0x06BE);         extendedKeyCodesSet.add(0x01000000+0x06CC);         extendedKeyCodesSet.add(0x01000000+0x06CC);         extendedKeyCodesSet.add(0x01000000+0x06D2);         extendedKeyCodesSet.add(0x01000000+0x0493);         extendedKeyCodesSet.add(0x01000000+0x0497);         extendedKeyCodesSet.add(0x01000000+0x049B);         extendedKeyCodesSet.add(0x01000000+0x049D);         extendedKeyCodesSet.add(0x01000000+0x04A3);         extendedKeyCodesSet.add(0x01000000+0x04AF);         extendedKeyCodesSet.add(0x01000000+0x04B1);         extendedKeyCodesSet.add(0x01000000+0x04B3);         extendedKeyCodesSet.add(0x01000000+0x04B9);         extendedKeyCodesSet.add(0x01000000+0x04BB);         extendedKeyCodesSet.add(0x01000000+0x04D9);         extendedKeyCodesSet.add(0x01000000+0x04E9);         extendedKeyCodesSet.add(0x01000000+0x0452);         extendedKeyCodesSet.add(0x01000000+0x0453);         extendedKeyCodesSet.add(0x01000000+0x0451);         extendedKeyCodesSet.add(0x01000000+0x0454);         extendedKeyCodesSet.add(0x01000000+0x0455);         extendedKeyCodesSet.add(0x01000000+0x0456);         extendedKeyCodesSet.add(0x01000000+0x0457);         extendedKeyCodesSet.add(0x01000000+0x0458);         extendedKeyCodesSet.add(0x01000000+0x0459);         extendedKeyCodesSet.add(0x01000000+0x045A);         extendedKeyCodesSet.add(0x01000000+0x045B);         extendedKeyCodesSet.add(0x01000000+0x045C);         extendedKeyCodesSet.add(0x01000000+0x0491);         extendedKeyCodesSet.add(0x01000000+0x045E);         extendedKeyCodesSet.add(0x01000000+0x045F);         extendedKeyCodesSet.add(0x01000000+0x2116);         extendedKeyCodesSet.add(0x01000000+0x044E);         extendedKeyCodesSet.add(0x01000000+0x0430);         extendedKeyCodesSet.add(0x01000000+0x0431);         extendedKeyCodesSet.add(0x01000000+0x0446);         extendedKeyCodesSet.add(0x01000000+0x0434);         extendedKeyCodesSet.add(0x01000000+0x0435);         extendedKeyCodesSet.add(0x01000000+0x0444);         extendedKeyCodesSet.add(0x01000000+0x0433);         extendedKeyCodesSet.add(0x01000000+0x0445);         extendedKeyCodesSet.add(0x01000000+0x0438);         extendedKeyCodesSet.add(0x01000000+0x0439);         extendedKeyCodesSet.add(0x01000000+0x043A);         extendedKeyCodesSet.add(0x01000000+0x043B);         extendedKeyCodesSet.add(0x01000000+0x043C);         extendedKeyCodesSet.add(0x01000000+0x043D);         extendedKeyCodesSet.add(0x01000000+0x043E);         extendedKeyCodesSet.add(0x01000000+0x043F);         extendedKeyCodesSet.add(0x01000000+0x044F);         extendedKeyCodesSet.add(0x01000000+0x0440);         extendedKeyCodesSet.add(0x01000000+0x0441);         extendedKeyCodesSet.add(0x01000000+0x0442);         extendedKeyCodesSet.add(0x01000000+0x0443);         extendedKeyCodesSet.add(0x01000000+0x0436);         extendedKeyCodesSet.add(0x01000000+0x0432);         extendedKeyCodesSet.add(0x01000000+0x044C);         extendedKeyCodesSet.add(0x01000000+0x044B);         extendedKeyCodesSet.add(0x01000000+0x0437);         extendedKeyCodesSet.add(0x01000000+0x0448);         extendedKeyCodesSet.add(0x01000000+0x044D);         extendedKeyCodesSet.add(0x01000000+0x0449);         extendedKeyCodesSet.add(0x01000000+0x0447);         extendedKeyCodesSet.add(0x01000000+0x044A);         extendedKeyCodesSet.add(0x01000000+0x2015);         extendedKeyCodesSet.add(0x01000000+0x03B1);         extendedKeyCodesSet.add(0x01000000+0x03B2);         extendedKeyCodesSet.add(0x01000000+0x03B3);         extendedKeyCodesSet.add(0x01000000+0x03B4);         extendedKeyCodesSet.add(0x01000000+0x03B5);         extendedKeyCodesSet.add(0x01000000+0x03B6);         extendedKeyCodesSet.add(0x01000000+0x03B7);         extendedKeyCodesSet.add(0x01000000+0x03B8);         extendedKeyCodesSet.add(0x01000000+0x03B9);         extendedKeyCodesSet.add(0x01000000+0x03BA);         extendedKeyCodesSet.add(0x01000000+0x03BB);         extendedKeyCodesSet.add(0x01000000+0x03BC);         extendedKeyCodesSet.add(0x01000000+0x03BD);         extendedKeyCodesSet.add(0x01000000+0x03BE);         extendedKeyCodesSet.add(0x01000000+0x03BF);         extendedKeyCodesSet.add(0x01000000+0x03C0);         extendedKeyCodesSet.add(0x01000000+0x03C1);         extendedKeyCodesSet.add(0x01000000+0x03C3);         extendedKeyCodesSet.add(0x01000000+0x03C2);         extendedKeyCodesSet.add(0x01000000+0x03C4);         extendedKeyCodesSet.add(0x01000000+0x03C5);         extendedKeyCodesSet.add(0x01000000+0x03C6);         extendedKeyCodesSet.add(0x01000000+0x03C7);         extendedKeyCodesSet.add(0x01000000+0x03C8);         extendedKeyCodesSet.add(0x01000000+0x03C9);         extendedKeyCodesSet.add(0x01000000+0x2190);         extendedKeyCodesSet.add(0x01000000+0x2192);         extendedKeyCodesSet.add(0x01000000+0x2193);         extendedKeyCodesSet.add(0x01000000+0x2013);         extendedKeyCodesSet.add(0x01000000+0x201C);         extendedKeyCodesSet.add(0x01000000+0x201D);         extendedKeyCodesSet.add(0x01000000+0x201E);         extendedKeyCodesSet.add(0x01000000+0x05D0);         extendedKeyCodesSet.add(0x01000000+0x05D1);         extendedKeyCodesSet.add(0x01000000+0x05D2);         extendedKeyCodesSet.add(0x01000000+0x05D3);         extendedKeyCodesSet.add(0x01000000+0x05D4);         extendedKeyCodesSet.add(0x01000000+0x05D5);         extendedKeyCodesSet.add(0x01000000+0x05D6);         extendedKeyCodesSet.add(0x01000000+0x05D7);         extendedKeyCodesSet.add(0x01000000+0x05D8);         extendedKeyCodesSet.add(0x01000000+0x05D9);         extendedKeyCodesSet.add(0x01000000+0x05DA);         extendedKeyCodesSet.add(0x01000000+0x05DB);         extendedKeyCodesSet.add(0x01000000+0x05DC);         extendedKeyCodesSet.add(0x01000000+0x05DD);         extendedKeyCodesSet.add(0x01000000+0x05DE);         extendedKeyCodesSet.add(0x01000000+0x05DF);         extendedKeyCodesSet.add(0x01000000+0x05E0);         extendedKeyCodesSet.add(0x01000000+0x05E1);         extendedKeyCodesSet.add(0x01000000+0x05E2);         extendedKeyCodesSet.add(0x01000000+0x05E3);         extendedKeyCodesSet.add(0x01000000+0x05E4);         extendedKeyCodesSet.add(0x01000000+0x05E5);         extendedKeyCodesSet.add(0x01000000+0x05E6);         extendedKeyCodesSet.add(0x01000000+0x05E7);         extendedKeyCodesSet.add(0x01000000+0x05E8);         extendedKeyCodesSet.add(0x01000000+0x05E9);         extendedKeyCodesSet.add(0x01000000+0x05EA);         extendedKeyCodesSet.add(0x01000000+0x0E01);         extendedKeyCodesSet.add(0x01000000+0x0E02);         extendedKeyCodesSet.add(0x01000000+0x0E03);         extendedKeyCodesSet.add(0x01000000+0x0E04);         extendedKeyCodesSet.add(0x01000000+0x0E05);         extendedKeyCodesSet.add(0x01000000+0x0E07);

Lines 1–500 of 644.