Created
January 10, 2014 03:59
-
-
Save duairc/8346783 to your computer and use it in GitHub Desktop.
Fast IDNA implementation in Haskell using attoparsec.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE BangPatterns #-} | |
module Text.IDNA | |
( toASCII | |
, toUnicode | |
) | |
where | |
-- attoparsec ---------------------------------------------------------------- | |
import Data.Attoparsec.Text | |
( anyChar | |
, endOfInput | |
, inClass | |
, notInClass | |
, parseOnly | |
) | |
-- base ---------------------------------------------------------------------- | |
import Control.Applicative ((<|>), empty) | |
import Control.Monad (guard) | |
import Data.List (foldl') | |
import Data.Monoid (mappend, mconcat, mempty) | |
-- containers ---------------------------------------------------------------- | |
import Data.IntMap (fromAscList) | |
import qualified Data.IntMap as I (lookup) | |
-- text ---------------------------------------------------------------------- | |
import Data.Text (Text, breakOnEnd, isPrefixOf, pack, singleton) | |
import qualified Data.Text as T | |
( all | |
, any | |
, concatMap | |
, drop | |
, filter | |
, foldr | |
, head | |
, init | |
, last | |
, length | |
, null | |
, splitAt | |
) | |
import Data.Text.Lazy (toStrict) | |
import Data.Text.Lazy.Builder (fromText, toLazyText) | |
import qualified Data.Text.Lazy.Builder as T (singleton) | |
-- text-icu ------------------------------------------------------------------ | |
import Data.Text.ICU.Normalize (NormalizationMode (NFKC), normalize) | |
------------------------------------------------------------------------------ | |
toASCII :: Text -> Maybe Text | |
toASCII text = do | |
prepped <- if T.any (> '\127') text then namePrep text else return text | |
guard $ T.all (\c -> c > '\127' || inClass "-0-9A-Za-z" c) prepped | |
guard $ T.null prepped || T.head prepped /= '-' && T.last prepped /= '-' | |
asciid <- if T.all (<= '\127') prepped then return prepped else do | |
guard $ not $ isPrefixOf acePrefix prepped | |
return $ mappend acePrefix (encode prepped) | |
guard $ T.length asciid < 64 | |
return asciid | |
------------------------------------------------------------------------------ | |
toUnicode :: Text -> Text | |
toUnicode t = either id id $ do | |
t' <- if T.all (<= '\127') t then return t else | |
maybe (Left t) return (namePrep t) | |
t'' <- if isPrefixOf acePrefix t' then return t' else Left t' | |
t''' <- maybe (Left t'') return (decode (T.drop 4 t'')) | |
return $ maybe t'' (\x -> if x == t'' then t''' else t'') (toASCII t''') | |
------------------------------------------------------------------------------ | |
acePrefix :: Text | |
acePrefix = pack "xn--" | |
------------------------------------------------------------------------------ | |
encode :: Text -> Text | |
encode text = toStrict . toLazyText $ do | |
let basic = T.filter (< '\128') text | |
let basicSize = T.length basic | |
let input = T.foldr ((.) . (:) . fromEnum) id text [] | |
let inputSize = T.length text | |
let go builder !n !delta !bias !h = if h >= inputSize then builder else do | |
let m = minimum $ filter (>= n) input | |
let f (builder_, !delta_, !bias_, !h_) !c = do | |
let delta_' = if c < m then delta_ + 1 else delta_ | |
if c /= m then (builder_, delta_', bias_, h_) else do | |
let inner !q !k builder__ = do | |
let t = let t' = k - bias_ in case () of | |
_ | t' <= 1 -> 1 | |
| t' >= 26 -> 26 | |
_ -> t' | |
if q < t then mappend builder__ (digit q) else do | |
let (q', r) = (q - t) `divMod` (36 - t) | |
let k' = k + 36 | |
let builder__' = mappend builder__ (digit (t + r)) | |
inner q' k' builder__' | |
let builder_' = inner delta_' 36 builder_ | |
let delta_'' = adapt delta_' (h_ + 1) (h_ == basicSize) | |
(builder_', 0, delta_'', h_ + 1) | |
let delta_ = delta + (m - n) * (h + 1) | |
let (builder', delta', bias', h') = | |
foldl' f (builder, delta_, bias, h) input | |
go builder' (m + 1) (delta' + 1) bias' h' | |
let builder = mappend (fromText basic) $ | |
if basicSize > 0 then T.singleton '-' else mempty | |
go builder 128 0 72 basicSize | |
where | |
digit i = T.singleton . toEnum . (i+) $ if i < 26 then 97 else 22 | |
------------------------------------------------------------------------------ | |
decode :: Text -> Maybe Text | |
decode input = do | |
let (b, after) = breakOnEnd (singleton '-') input | |
let before = if T.null b then b else T.init b | |
guard $ not $ T.null before && b == singleton '-' | |
guard $ T.all (<= '\128') before | |
let go !n !_i !bias output = (endOfInput >> return output) <|> do | |
let inner !k !w !i = do | |
digit <- anyChar >>= fromDigit | |
let t = let t' = k - bias in case () of | |
_ | t' <= 1 -> 1 | |
| t' >= 26 -> 26 | |
_ -> t' | |
let w' = w * (36 - t) | |
let i' = i + digit * w | |
if digit < t then return i' else inner (k + 36) w' i' | |
i <- inner 36 1 _i | |
let (i', n') = let (q, r) = i `divMod` (T.length output + 1) in | |
(r, n + q) | |
output' <- insert output n' i' | |
let bias' = adapt (i - _i) (T.length output + 1) (_i == 0) | |
go n' (i' + 1) bias' output' | |
either (const Nothing) Just $ parseOnly (go 128 0 72 before) after | |
where | |
insert t n i = do | |
guard $ i <= T.length t | |
guard $ n >= 0 && n <= fromEnum (maxBound :: Char) | |
let (beginning, end) = T.splitAt i t | |
return $ mconcat [beginning, singleton (toEnum n), end] | |
fromDigit c | |
| c >= 'a' && c <= 'z' = return $ fromEnum c - 97 | |
| c >= 'A' && c <= 'Z' = return $ fromEnum c - 65 | |
| c >= '0' && c <= '9' = return $ fromEnum c - 22 | |
| otherwise = empty | |
------------------------------------------------------------------------------ | |
adapt :: Int -> Int -> Bool -> Int | |
adapt delta points first = do | |
let delta_ = delta `div` if first then 700 else 2 | |
go 0 (delta_ + (delta_ `div` points)) | |
where | |
go k delta' | |
| delta' > ((36 - 1) * 26) `div` 2 = | |
go (k + 36) $ delta' `div` (36 - 1) | |
| otherwise = k + (((36 - 1 + 1) * delta') `div` (delta' + 38)) | |
------------------------------------------------------------------------------ | |
namePrep :: Text -> Maybe Text | |
namePrep t = do | |
let t' = normalise (downcase t) | |
guard $ checkBidirectional t' | |
guard $ T.all allowed t' | |
return t' | |
where | |
downcase = T.concatMap $ \c -> | |
maybe (singleton c) id $ I.lookup (fromEnum c) mapping | |
normalise = normalize NFKC | |
checkBidirectional t' = not (T.any randl t') | |
|| not (T.any l t') && randl (T.head t') && randl (T.last t') | |
allowed = notInClass $ concat | |
[ "\128-\160\545\564-\591\686\687\751-\767\832\833\848-\863\880-\883" | |
, "\886-\889\891-\893\895-\899\907\909\930\975\1015-\1023\1159\1231" | |
, "\1270\1271\1274-\1279\1296-\1328\1367\1368\1376\1416\1419-\1424" | |
, "\1442\1466\1477-\1487\1515-\1519\1525-\1547\1549-\1562\1564-\1566" | |
, "\1568\1595-\1599\1622-\1631\1757\1774\1775\1791\1806\1807" | |
, "\1837-\1839\1867-\1919\1970-\2304\2308\2362\2363\2382\2383" | |
, "\2389-\2391\2417-\2432\2436\2445\2446\2449\2450\2473\2481" | |
, "\2483-\2485\2490\2491\2493\2501\2502\2505\2506\2510-\2518" | |
, "\2520-\2523\2526\2532\2533\2555-\2561\2563\2564\2571-\2574\2577" | |
, "\2578\2601\2609\2612\2615\2618\2619\2621\2627-\2630\2633\2634" | |
, "\2638-\2648\2653\2655-\2661\2677-\2688\2692\2700\2702\2706\2729" | |
, "\2737\2740\2746\2747\2758\2762\2766\2767\2769-\2783\2785-\2789" | |
, "\2800-\2816\2820\2829\2830\2833\2834\2857\2865\2868\2869\2874\2875" | |
, "\2884-\2886\2889\2890\2894-\2901\2904-\2907\2910\2914-\2917" | |
, "\2929-\2945\2948\2955-\2957\2961\2966-\2968\2971\2973\2976-\2978" | |
, "\2981-\2983\2987-\2989\2998\3002-\3005\3011-\3013\3017\3022-\3030" | |
, "\3032-\3046\3059-\3072\3076\3085\3089\3113\3124\3130-\3133\3141" | |
, "\3145\3150-\3156\3159-\3167\3170-\3173\3184-\3201\3204\3213\3217" | |
, "\3241\3252\3258-\3261\3269\3273\3278-\3284\3287-\3293\3295" | |
, "\3298-\3301\3312-\3329\3332\3341\3345\3369\3386-\3389\3396\3397" | |
, "\3401\3406-\3414\3416-\3423\3426-\3429\3440-\3457\3460\3479-\3481" | |
, "\3506\3516\3518\3519\3527-\3529\3531-\3534\3541\3543\3552-\3569" | |
, "\3573-\3584\3643-\3646\3676-\3712\3715\3717\3718\3721\3723\3724" | |
, "\3726-\3731\3736\3744\3748\3750\3752\3753\3756\3770\3774\3775\3781" | |
, "\3783\3790\3791\3802\3803\3806-\3839\3912\3947-\3952\3980-\3983" | |
, "\3992\4029\4045\4046\4048-\4095\4130\4136\4139\4147-\4149" | |
, "\4154-\4159\4186-\4255\4294-\4303\4345\4346\4348-\4351\4442-\4446" | |
, "\4515-\4519\4602-\4607\4615\4679\4681\4686\4687\4695\4697\4702" | |
, "\4703\4743\4745\4750\4751\4783\4785\4790\4791\4799\4801\4806\4807" | |
, "\4815\4823\4847\4879\4881\4886\4887\4895\4935\4955-\4960" | |
, "\4989-\5023\5109-\5120\5751-\5760\5789-\5791\5873-\5887\5901" | |
, "\5909-\5919\5943-\5951\5972-\5983\5997\6001\6004-\6015\6109-\6111" | |
, "\6122-\6143\6158\6159\6170-\6175\6264-\6271\6314-\7679\7836-\7839" | |
, "\7930-\7935\7958\7959\7966\7967\8006\8007\8014\8015\8024\8026\8028" | |
, "\8030\8062\8063\8117\8133\8148\8149\8156\8176\8177\8181\8191-\8207" | |
, "\8232-\8239\8275-\8278\8280-\8298\8298\8299\8299\8300\8300\8301" | |
, "\8301\8302\8302\8303\8303\8306\8307\8335-\8351\8370-\8399" | |
, "\8427-\8447\8507\8508\8524-\8530\8580-\8591\9167-\9215\9255-\9279" | |
, "\9291-\9311\9471\9748\9749\9752\9854\9855\9866-\9984\9989\9994" | |
, "\9995\10024\10060\10062\10067-\10069\10071\10079\10080" | |
, "\10133-\10135\10160\10175-\10191\10220-\10223\11008-\11903\11930" | |
, "\12020-\12031\12246-\12288\12352\12439\12440\12544-\12548" | |
, "\12589-\12592\12687\12728-\12783\12829-\12831\12868-\12880" | |
, "\12924-\12926\13004-\13007\13055\13175-\13178\13278\13279\13311" | |
, "\19894-\19967\40870-\40959\42125-\42127\42183-\44031\55204-\63743" | |
, "\64046\64047\64107-\64255\64263-\64274\64280-\64284\64311\64317" | |
, "\64319\64322\64325\64434-\64466\64832-\64847\64912\64913" | |
, "\64968-\65007\65021-\65023\65040-\65055\65060-\65071\65095\65096" | |
, "\65107\65127\65132-\65135\65141\65277-\65280\65471-\65473\65480" | |
, "\65481\65488\65489\65496\65497\65501-\65503\65511\65519-\65529" | |
, "\65529\65530\65530\65531\65531\65532\65532-\66303\66335" | |
, "\66340-\66351\66379-\66559\66598\66599\66638-\118783" | |
, "\119030-\119039\119079-\119081\119155-\119162\119262-\119807" | |
, "\119893\119965\119968\119969\119971\119972\119975\119976\119981" | |
, "\119994\119996\120001\120004\120070\120075\120076\120085\120093" | |
, "\120122\120127\120133\120135-\120137\120145\120484-\120487" | |
, "\120778-\120781\120832-\131071\173783-\194559\195102-\1114111" | |
] | |
randl = inClass $ concat | |
[ "\1470\1472\1475\1488-\1514\1520-\1524\1563\1567\1569-\1594" | |
, "\1600-\1610\1645-\1647\1649-\1749\1757\1765\1766\1786-\1790" | |
, "\1792-\1805\1808\1810-\1836\1920-\1957\1969\8207\64285" | |
, "\64287-\64296\64298-\64310\64312-\64316\64318\64320\64321\64323" | |
, "\64324\64326-\64433\64467-\64829\64848-\64911\64914-\64967" | |
, "\65008-\65020\65136-\65140\65142-\65276" | |
] | |
l = inClass $ concat | |
[ "A-Za-z\170\181\186\192-\214\216-\246\248-\544\546-\563\592-\685" | |
, "\688-\696\699-\705\720\721\736-\740\750\890\902\904-\906\908" | |
, "\910-\929\931-\974\976-\1013\1024-\1154\1162-\1230\1232-\1269\1272" | |
, "\1273\1280-\1295\1329-\1366\1369-\1375\1377-\1415\1417\2307" | |
, "\2309-\2361\2365-\2368\2377-\2380\2384\2392-\2401\2404-\2416\2434" | |
, "\2435\2437-\2444\2447\2448\2451-\2472\2474-\2480\2482\2486-\2489" | |
, "\2494-\2496\2503\2504\2507\2508\2519\2524\2525\2527-\2529" | |
, "\2534-\2545\2548-\2554\2565-\2570\2575\2576\2579-\2600\2602-\2608" | |
, "\2610\2611\2613\2614\2616\2617\2622-\2624\2649-\2652\2654" | |
, "\2662-\2671\2674-\2676\2691\2693-\2699\2701\2703-\2705\2707-\2728" | |
, "\2730-\2736\2738\2739\2741-\2745\2749-\2752\2761\2763\2764\2768" | |
, "\2784\2790-\2799\2818\2819\2821-\2828\2831\2832\2835-\2856" | |
, "\2858-\2864\2866\2867\2870-\2873\2877\2878\2880\2887\2888\2891" | |
, "\2892\2903\2908\2909\2911-\2913\2918-\2928\2947\2949-\2954" | |
, "\2958-\2960\2962-\2965\2969\2970\2972\2974\2975\2979\2980" | |
, "\2984-\2986\2990-\2997\2999-\3001\3006\3007\3009\3010\3014-\3016" | |
, "\3018-\3020\3031\3047-\3058\3073-\3075\3077-\3084\3086-\3088" | |
, "\3090-\3112\3114-\3123\3125-\3129\3137-\3140\3168\3169\3174-\3183" | |
, "\3202\3203\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257" | |
, "\3262\3264-\3268\3271\3272\3274\3275\3285\3286\3294\3296\3297" | |
, "\3302-\3311\3330\3331\3333-\3340\3342-\3344\3346-\3368\3370-\3385" | |
, "\3390-\3392\3398-\3400\3402-\3404\3415\3424\3425\3430-\3439\3458" | |
, "\3459\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3535-\3537" | |
, "\3544-\3551\3570-\3572\3585-\3632\3634\3635\3648-\3654\3663-\3675" | |
, "\3713\3714\3716\3719\3720\3722\3725\3732-\3735\3737-\3743" | |
, "\3745-\3747\3749\3751\3754\3755\3757-\3760\3762\3763\3773" | |
, "\3776-\3780\3782\3792-\3801\3804\3805\3840-\3863\3866-\3892\3894" | |
, "\3896\3902-\3911\3913-\3946\3967\3973\3976-\3979\4030-\4037" | |
, "\4039-\4044\4047\4096-\4129\4131-\4135\4137\4138\4140\4145\4152" | |
, "\4160-\4183\4256-\4293\4304-\4344\4347\4352-\4441\4447-\4514" | |
, "\4520-\4601\4608-\4614\4616-\4678\4680\4682-\4685\4688-\4694\4696" | |
, "\4698-\4701\4704-\4742\4744\4746-\4749\4752-\4782\4784\4786-\4789" | |
, "\4792-\4798\4800\4802-\4805\4808-\4814\4816-\4822\4824-\4846" | |
, "\4848-\4878\4880\4882-\4885\4888-\4894\4896-\4934\4936-\4954" | |
, "\4961-\4988\5024-\5108\5121-\5750\5761-\5786\5792-\5872" | |
, "\5888-\5900\5902-\5905\5920-\5937\5941\5942\5952-\5969\5984-\5996" | |
, "\5998-\6000\6016-\6070\6078-\6085\6087\6088\6100-\6106\6108" | |
, "\6112-\6121\6160-\6169\6176-\6263\6272-\6312\7680-\7835\7840-\7929" | |
, "\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027" | |
, "\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140" | |
, "\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8206\8305" | |
, "\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488" | |
, "\8490-\8493\8495-\8497\8499-\8505\8509-\8511\8517-\8521\8544-\8579" | |
, "\9014-\9082\9109\9372-\9449\12293-\12295\12321-\12329\12337-\12341" | |
, "\12344-\12348\12353-\12438\12445-\12447\12449-\12538\12540-\12543" | |
, "\12549-\12588\12593-\12686\12688-\12727\12784-\12828\12832-\12867" | |
, "\12896-\12923\12927-\12976\12992-\13003\13008-\13054\13056-\13174" | |
, "\13179-\13277\13280-\13310\13312-\19893\19968-\40869\40960-\42124" | |
, "\44032-\55203\55296-\64045\64048-\64106\64256-\64262\64275-\64279" | |
, "\65313-\65338\65345-\65370\65382-\65470\65474-\65479\65482-\65487" | |
, "\65490-\65495\65498-\65500\66304-\66334\66336-\66339\66352-\66378" | |
, "\66560-\66597\66600-\66637\118784-\119029\119040-\119078" | |
, "\119082-\119142\119146-\119154\119171\119172\119180-\119209" | |
, "\119214-\119261\119808-\119892\119894-\119964\119966\119967\119970" | |
, "\119973\119974\119977-\119980\119982-\119993\119995\119997-\120000" | |
, "\120002\120003\120005-\120069\120071-\120074\120077-\120084" | |
, "\120086-\120092\120094-\120121\120123-\120126\120128-\120132" | |
, "\120134\120138-\120144\120146-\120483\120488-\120777" | |
, "\131072-\173782\194560-\195101\983040-\1048573\1048576-\1114109" | |
] | |
mapping = fromAscList . map (\(k, v) -> (fromEnum k, pack v)) $ | |
[ ('\x0041', "\x0061") | |
, ('\x0042', "\x0062") | |
, ('\x0043', "\x0063") | |
, ('\x0044', "\x0064") | |
, ('\x0045', "\x0065") | |
, ('\x0046', "\x0066") | |
, ('\x0047', "\x0067") | |
, ('\x0048', "\x0068") | |
, ('\x0049', "\x0069") | |
, ('\x004A', "\x006A") | |
, ('\x004B', "\x006B") | |
, ('\x004C', "\x006C") | |
, ('\x004D', "\x006D") | |
, ('\x004E', "\x006E") | |
, ('\x004F', "\x006F") | |
, ('\x0050', "\x0070") | |
, ('\x0051', "\x0071") | |
, ('\x0052', "\x0072") | |
, ('\x0053', "\x0073") | |
, ('\x0054', "\x0074") | |
, ('\x0055', "\x0075") | |
, ('\x0056', "\x0076") | |
, ('\x0057', "\x0077") | |
, ('\x0058', "\x0078") | |
, ('\x0059', "\x0079") | |
, ('\x005A', "\x007A") | |
, ('\x00AD', "") | |
, ('\x00B5', "\x03BC") | |
, ('\x00C0', "\x00E0") | |
, ('\x00C1', "\x00E1") | |
, ('\x00C2', "\x00E2") | |
, ('\x00C3', "\x00E3") | |
, ('\x00C4', "\x00E4") | |
, ('\x00C5', "\x00E5") | |
, ('\x00C6', "\x00E6") | |
, ('\x00C7', "\x00E7") | |
, ('\x00C8', "\x00E8") | |
, ('\x00C9', "\x00E9") | |
, ('\x00CA', "\x00EA") | |
, ('\x00CB', "\x00EB") | |
, ('\x00CC', "\x00EC") | |
, ('\x00CD', "\x00ED") | |
, ('\x00CE', "\x00EE") | |
, ('\x00CF', "\x00EF") | |
, ('\x00D0', "\x00F0") | |
, ('\x00D1', "\x00F1") | |
, ('\x00D2', "\x00F2") | |
, ('\x00D3', "\x00F3") | |
, ('\x00D4', "\x00F4") | |
, ('\x00D5', "\x00F5") | |
, ('\x00D6', "\x00F6") | |
, ('\x00D8', "\x00F8") | |
, ('\x00D9', "\x00F9") | |
, ('\x00DA', "\x00FA") | |
, ('\x00DB', "\x00FB") | |
, ('\x00DC', "\x00FC") | |
, ('\x00DD', "\x00FD") | |
, ('\x00DE', "\x00FE") | |
, ('\x00DF', "\x0073\x0073") | |
, ('\x0100', "\x0101") | |
, ('\x0102', "\x0103") | |
, ('\x0104', "\x0105") | |
, ('\x0106', "\x0107") | |
, ('\x0108', "\x0109") | |
, ('\x010A', "\x010B") | |
, ('\x010C', "\x010D") | |
, ('\x010E', "\x010F") | |
, ('\x0110', "\x0111") | |
, ('\x0112', "\x0113") | |
, ('\x0114', "\x0115") | |
, ('\x0116', "\x0117") | |
, ('\x0118', "\x0119") | |
, ('\x011A', "\x011B") | |
, ('\x011C', "\x011D") | |
, ('\x011E', "\x011F") | |
, ('\x0120', "\x0121") | |
, ('\x0122', "\x0123") | |
, ('\x0124', "\x0125") | |
, ('\x0126', "\x0127") | |
, ('\x0128', "\x0129") | |
, ('\x012A', "\x012B") | |
, ('\x012C', "\x012D") | |
, ('\x012E', "\x012F") | |
, ('\x0130', "\x0069\x0307") | |
, ('\x0132', "\x0133") | |
, ('\x0134', "\x0135") | |
, ('\x0136', "\x0137") | |
, ('\x0139', "\x013A") | |
, ('\x013B', "\x013C") | |
, ('\x013D', "\x013E") | |
, ('\x013F', "\x0140") | |
, ('\x0141', "\x0142") | |
, ('\x0143', "\x0144") | |
, ('\x0145', "\x0146") | |
, ('\x0147', "\x0148") | |
, ('\x0149', "\x02BC\x006E") | |
, ('\x014A', "\x014B") | |
, ('\x014C', "\x014D") | |
, ('\x014E', "\x014F") | |
, ('\x0150', "\x0151") | |
, ('\x0152', "\x0153") | |
, ('\x0154', "\x0155") | |
, ('\x0156', "\x0157") | |
, ('\x0158', "\x0159") | |
, ('\x015A', "\x015B") | |
, ('\x015C', "\x015D") | |
, ('\x015E', "\x015F") | |
, ('\x0160', "\x0161") | |
, ('\x0162', "\x0163") | |
, ('\x0164', "\x0165") | |
, ('\x0166', "\x0167") | |
, ('\x0168', "\x0169") | |
, ('\x016A', "\x016B") | |
, ('\x016C', "\x016D") | |
, ('\x016E', "\x016F") | |
, ('\x0170', "\x0171") | |
, ('\x0172', "\x0173") | |
, ('\x0174', "\x0175") | |
, ('\x0176', "\x0177") | |
, ('\x0178', "\x00FF") | |
, ('\x0179', "\x017A") | |
, ('\x017B', "\x017C") | |
, ('\x017D', "\x017E") | |
, ('\x017F', "\x0073") | |
, ('\x0181', "\x0253") | |
, ('\x0182', "\x0183") | |
, ('\x0184', "\x0185") | |
, ('\x0186', "\x0254") | |
, ('\x0187', "\x0188") | |
, ('\x0189', "\x0256") | |
, ('\x018A', "\x0257") | |
, ('\x018B', "\x018C") | |
, ('\x018E', "\x01DD") | |
, ('\x018F', "\x0259") | |
, ('\x0190', "\x025B") | |
, ('\x0191', "\x0192") | |
, ('\x0193', "\x0260") | |
, ('\x0194', "\x0263") | |
, ('\x0196', "\x0269") | |
, ('\x0197', "\x0268") | |
, ('\x0198', "\x0199") | |
, ('\x019C', "\x026F") | |
, ('\x019D', "\x0272") | |
, ('\x019F', "\x0275") | |
, ('\x01A0', "\x01A1") | |
, ('\x01A2', "\x01A3") | |
, ('\x01A4', "\x01A5") | |
, ('\x01A6', "\x0280") | |
, ('\x01A7', "\x01A8") | |
, ('\x01A9', "\x0283") | |
, ('\x01AC', "\x01AD") | |
, ('\x01AE', "\x0288") | |
, ('\x01AF', "\x01B0") | |
, ('\x01B1', "\x028A") | |
, ('\x01B2', "\x028B") | |
, ('\x01B3', "\x01B4") | |
, ('\x01B5', "\x01B6") | |
, ('\x01B7', "\x0292") | |
, ('\x01B8', "\x01B9") | |
, ('\x01BC', "\x01BD") | |
, ('\x01C4', "\x01C6") | |
, ('\x01C5', "\x01C6") | |
, ('\x01C7', "\x01C9") | |
, ('\x01C8', "\x01C9") | |
, ('\x01CA', "\x01CC") | |
, ('\x01CB', "\x01CC") | |
, ('\x01CD', "\x01CE") | |
, ('\x01CF', "\x01D0") | |
, ('\x01D1', "\x01D2") | |
, ('\x01D3', "\x01D4") | |
, ('\x01D5', "\x01D6") | |
, ('\x01D7', "\x01D8") | |
, ('\x01D9', "\x01DA") | |
, ('\x01DB', "\x01DC") | |
, ('\x01DE', "\x01DF") | |
, ('\x01E0', "\x01E1") | |
, ('\x01E2', "\x01E3") | |
, ('\x01E4', "\x01E5") | |
, ('\x01E6', "\x01E7") | |
, ('\x01E8', "\x01E9") | |
, ('\x01EA', "\x01EB") | |
, ('\x01EC', "\x01ED") | |
, ('\x01EE', "\x01EF") | |
, ('\x01F0', "\x006A\x030C") | |
, ('\x01F1', "\x01F3") | |
, ('\x01F2', "\x01F3") | |
, ('\x01F4', "\x01F5") | |
, ('\x01F6', "\x0195") | |
, ('\x01F7', "\x01BF") | |
, ('\x01F8', "\x01F9") | |
, ('\x01FA', "\x01FB") | |
, ('\x01FC', "\x01FD") | |
, ('\x01FE', "\x01FF") | |
, ('\x0200', "\x0201") | |
, ('\x0202', "\x0203") | |
, ('\x0204', "\x0205") | |
, ('\x0206', "\x0207") | |
, ('\x0208', "\x0209") | |
, ('\x020A', "\x020B") | |
, ('\x020C', "\x020D") | |
, ('\x020E', "\x020F") | |
, ('\x0210', "\x0211") | |
, ('\x0212', "\x0213") | |
, ('\x0214', "\x0215") | |
, ('\x0216', "\x0217") | |
, ('\x0218', "\x0219") | |
, ('\x021A', "\x021B") | |
, ('\x021C', "\x021D") | |
, ('\x021E', "\x021F") | |
, ('\x0220', "\x019E") | |
, ('\x0222', "\x0223") | |
, ('\x0224', "\x0225") | |
, ('\x0226', "\x0227") | |
, ('\x0228', "\x0229") | |
, ('\x022A', "\x022B") | |
, ('\x022C', "\x022D") | |
, ('\x022E', "\x022F") | |
, ('\x0230', "\x0231") | |
, ('\x0232', "\x0233") | |
, ('\x0345', "\x03B9") | |
, ('\x034F', "") | |
, ('\x037A', "\x0020\x03B9") | |
, ('\x0386', "\x03AC") | |
, ('\x0388', "\x03AD") | |
, ('\x0389', "\x03AE") | |
, ('\x038A', "\x03AF") | |
, ('\x038C', "\x03CC") | |
, ('\x038E', "\x03CD") | |
, ('\x038F', "\x03CE") | |
, ('\x0390', "\x03B9\x0308\x0301") | |
, ('\x0391', "\x03B1") | |
, ('\x0392', "\x03B2") | |
, ('\x0393', "\x03B3") | |
, ('\x0394', "\x03B4") | |
, ('\x0395', "\x03B5") | |
, ('\x0396', "\x03B6") | |
, ('\x0397', "\x03B7") | |
, ('\x0398', "\x03B8") | |
, ('\x0399', "\x03B9") | |
, ('\x039A', "\x03BA") | |
, ('\x039B', "\x03BB") | |
, ('\x039C', "\x03BC") | |
, ('\x039D', "\x03BD") | |
, ('\x039E', "\x03BE") | |
, ('\x039F', "\x03BF") | |
, ('\x03A0', "\x03C0") | |
, ('\x03A1', "\x03C1") | |
, ('\x03A3', "\x03C3") | |
, ('\x03A4', "\x03C4") | |
, ('\x03A5', "\x03C5") | |
, ('\x03A6', "\x03C6") | |
, ('\x03A7', "\x03C7") | |
, ('\x03A8', "\x03C8") | |
, ('\x03A9', "\x03C9") | |
, ('\x03AA', "\x03CA") | |
, ('\x03AB', "\x03CB") | |
, ('\x03B0', "\x03C5\x0308\x0301") | |
, ('\x03C2', "\x03C3") | |
, ('\x03D0', "\x03B2") | |
, ('\x03D1', "\x03B8") | |
, ('\x03D2', "\x03C5") | |
, ('\x03D3', "\x03CD") | |
, ('\x03D4', "\x03CB") | |
, ('\x03D5', "\x03C6") | |
, ('\x03D6', "\x03C0") | |
, ('\x03D8', "\x03D9") | |
, ('\x03DA', "\x03DB") | |
, ('\x03DC', "\x03DD") | |
, ('\x03DE', "\x03DF") | |
, ('\x03E0', "\x03E1") | |
, ('\x03E2', "\x03E3") | |
, ('\x03E4', "\x03E5") | |
, ('\x03E6', "\x03E7") | |
, ('\x03E8', "\x03E9") | |
, ('\x03EA', "\x03EB") | |
, ('\x03EC', "\x03ED") | |
, ('\x03EE', "\x03EF") | |
, ('\x03F0', "\x03BA") | |
, ('\x03F1', "\x03C1") | |
, ('\x03F2', "\x03C3") | |
, ('\x03F4', "\x03B8") | |
, ('\x03F5', "\x03B5") | |
, ('\x0400', "\x0450") | |
, ('\x0401', "\x0451") | |
, ('\x0402', "\x0452") | |
, ('\x0403', "\x0453") | |
, ('\x0404', "\x0454") | |
, ('\x0405', "\x0455") | |
, ('\x0406', "\x0456") | |
, ('\x0407', "\x0457") | |
, ('\x0408', "\x0458") | |
, ('\x0409', "\x0459") | |
, ('\x040A', "\x045A") | |
, ('\x040B', "\x045B") | |
, ('\x040C', "\x045C") | |
, ('\x040D', "\x045D") | |
, ('\x040E', "\x045E") | |
, ('\x040F', "\x045F") | |
, ('\x0410', "\x0430") | |
, ('\x0411', "\x0431") | |
, ('\x0412', "\x0432") | |
, ('\x0413', "\x0433") | |
, ('\x0414', "\x0434") | |
, ('\x0415', "\x0435") | |
, ('\x0416', "\x0436") | |
, ('\x0417', "\x0437") | |
, ('\x0418', "\x0438") | |
, ('\x0419', "\x0439") | |
, ('\x041A', "\x043A") | |
, ('\x041B', "\x043B") | |
, ('\x041C', "\x043C") | |
, ('\x041D', "\x043D") | |
, ('\x041E', "\x043E") | |
, ('\x041F', "\x043F") | |
, ('\x0420', "\x0440") | |
, ('\x0421', "\x0441") | |
, ('\x0422', "\x0442") | |
, ('\x0423', "\x0443") | |
, ('\x0424', "\x0444") | |
, ('\x0425', "\x0445") | |
, ('\x0426', "\x0446") | |
, ('\x0427', "\x0447") | |
, ('\x0428', "\x0448") | |
, ('\x0429', "\x0449") | |
, ('\x042A', "\x044A") | |
, ('\x042B', "\x044B") | |
, ('\x042C', "\x044C") | |
, ('\x042D', "\x044D") | |
, ('\x042E', "\x044E") | |
, ('\x042F', "\x044F") | |
, ('\x0460', "\x0461") | |
, ('\x0462', "\x0463") | |
, ('\x0464', "\x0465") | |
, ('\x0466', "\x0467") | |
, ('\x0468', "\x0469") | |
, ('\x046A', "\x046B") | |
, ('\x046C', "\x046D") | |
, ('\x046E', "\x046F") | |
, ('\x0470', "\x0471") | |
, ('\x0472', "\x0473") | |
, ('\x0474', "\x0475") | |
, ('\x0476', "\x0477") | |
, ('\x0478', "\x0479") | |
, ('\x047A', "\x047B") | |
, ('\x047C', "\x047D") | |
, ('\x047E', "\x047F") | |
, ('\x0480', "\x0481") | |
, ('\x048A', "\x048B") | |
, ('\x048C', "\x048D") | |
, ('\x048E', "\x048F") | |
, ('\x0490', "\x0491") | |
, ('\x0492', "\x0493") | |
, ('\x0494', "\x0495") | |
, ('\x0496', "\x0497") | |
, ('\x0498', "\x0499") | |
, ('\x049A', "\x049B") | |
, ('\x049C', "\x049D") | |
, ('\x049E', "\x049F") | |
, ('\x04A0', "\x04A1") | |
, ('\x04A2', "\x04A3") | |
, ('\x04A4', "\x04A5") | |
, ('\x04A6', "\x04A7") | |
, ('\x04A8', "\x04A9") | |
, ('\x04AA', "\x04AB") | |
, ('\x04AC', "\x04AD") | |
, ('\x04AE', "\x04AF") | |
, ('\x04B0', "\x04B1") | |
, ('\x04B2', "\x04B3") | |
, ('\x04B4', "\x04B5") | |
, ('\x04B6', "\x04B7") | |
, ('\x04B8', "\x04B9") | |
, ('\x04BA', "\x04BB") | |
, ('\x04BC', "\x04BD") | |
, ('\x04BE', "\x04BF") | |
, ('\x04C1', "\x04C2") | |
, ('\x04C3', "\x04C4") | |
, ('\x04C5', "\x04C6") | |
, ('\x04C7', "\x04C8") | |
, ('\x04C9', "\x04CA") | |
, ('\x04CB', "\x04CC") | |
, ('\x04CD', "\x04CE") | |
, ('\x04D0', "\x04D1") | |
, ('\x04D2', "\x04D3") | |
, ('\x04D4', "\x04D5") | |
, ('\x04D6', "\x04D7") | |
, ('\x04D8', "\x04D9") | |
, ('\x04DA', "\x04DB") | |
, ('\x04DC', "\x04DD") | |
, ('\x04DE', "\x04DF") | |
, ('\x04E0', "\x04E1") | |
, ('\x04E2', "\x04E3") | |
, ('\x04E4', "\x04E5") | |
, ('\x04E6', "\x04E7") | |
, ('\x04E8', "\x04E9") | |
, ('\x04EA', "\x04EB") | |
, ('\x04EC', "\x04ED") | |
, ('\x04EE', "\x04EF") | |
, ('\x04F0', "\x04F1") | |
, ('\x04F2', "\x04F3") | |
, ('\x04F4', "\x04F5") | |
, ('\x04F8', "\x04F9") | |
, ('\x0500', "\x0501") | |
, ('\x0502', "\x0503") | |
, ('\x0504', "\x0505") | |
, ('\x0506', "\x0507") | |
, ('\x0508', "\x0509") | |
, ('\x050A', "\x050B") | |
, ('\x050C', "\x050D") | |
, ('\x050E', "\x050F") | |
, ('\x0531', "\x0561") | |
, ('\x0532', "\x0562") | |
, ('\x0533', "\x0563") | |
, ('\x0534', "\x0564") | |
, ('\x0535', "\x0565") | |
, ('\x0536', "\x0566") | |
, ('\x0537', "\x0567") | |
, ('\x0538', "\x0568") | |
, ('\x0539', "\x0569") | |
, ('\x053A', "\x056A") | |
, ('\x053B', "\x056B") | |
, ('\x053C', "\x056C") | |
, ('\x053D', "\x056D") | |
, ('\x053E', "\x056E") | |
, ('\x053F', "\x056F") | |
, ('\x0540', "\x0570") | |
, ('\x0541', "\x0571") | |
, ('\x0542', "\x0572") | |
, ('\x0543', "\x0573") | |
, ('\x0544', "\x0574") | |
, ('\x0545', "\x0575") | |
, ('\x0546', "\x0576") | |
, ('\x0547', "\x0577") | |
, ('\x0548', "\x0578") | |
, ('\x0549', "\x0579") | |
, ('\x054A', "\x057A") | |
, ('\x054B', "\x057B") | |
, ('\x054C', "\x057C") | |
, ('\x054D', "\x057D") | |
, ('\x054E', "\x057E") | |
, ('\x054F', "\x057F") | |
, ('\x0550', "\x0580") | |
, ('\x0551', "\x0581") | |
, ('\x0552', "\x0582") | |
, ('\x0553', "\x0583") | |
, ('\x0554', "\x0584") | |
, ('\x0555', "\x0585") | |
, ('\x0556', "\x0586") | |
, ('\x0587', "\x0565\x0582") | |
, ('\x1806', "") | |
, ('\x180B', "") | |
, ('\x180C', "") | |
, ('\x180D', "") | |
, ('\x1E00', "\x1E01") | |
, ('\x1E02', "\x1E03") | |
, ('\x1E04', "\x1E05") | |
, ('\x1E06', "\x1E07") | |
, ('\x1E08', "\x1E09") | |
, ('\x1E0A', "\x1E0B") | |
, ('\x1E0C', "\x1E0D") | |
, ('\x1E0E', "\x1E0F") | |
, ('\x1E10', "\x1E11") | |
, ('\x1E12', "\x1E13") | |
, ('\x1E14', "\x1E15") | |
, ('\x1E16', "\x1E17") | |
, ('\x1E18', "\x1E19") | |
, ('\x1E1A', "\x1E1B") | |
, ('\x1E1C', "\x1E1D") | |
, ('\x1E1E', "\x1E1F") | |
, ('\x1E20', "\x1E21") | |
, ('\x1E22', "\x1E23") | |
, ('\x1E24', "\x1E25") | |
, ('\x1E26', "\x1E27") | |
, ('\x1E28', "\x1E29") | |
, ('\x1E2A', "\x1E2B") | |
, ('\x1E2C', "\x1E2D") | |
, ('\x1E2E', "\x1E2F") | |
, ('\x1E30', "\x1E31") | |
, ('\x1E32', "\x1E33") | |
, ('\x1E34', "\x1E35") | |
, ('\x1E36', "\x1E37") | |
, ('\x1E38', "\x1E39") | |
, ('\x1E3A', "\x1E3B") | |
, ('\x1E3C', "\x1E3D") | |
, ('\x1E3E', "\x1E3F") | |
, ('\x1E40', "\x1E41") | |
, ('\x1E42', "\x1E43") | |
, ('\x1E44', "\x1E45") | |
, ('\x1E46', "\x1E47") | |
, ('\x1E48', "\x1E49") | |
, ('\x1E4A', "\x1E4B") | |
, ('\x1E4C', "\x1E4D") | |
, ('\x1E4E', "\x1E4F") | |
, ('\x1E50', "\x1E51") | |
, ('\x1E52', "\x1E53") | |
, ('\x1E54', "\x1E55") | |
, ('\x1E56', "\x1E57") | |
, ('\x1E58', "\x1E59") | |
, ('\x1E5A', "\x1E5B") | |
, ('\x1E5C', "\x1E5D") | |
, ('\x1E5E', "\x1E5F") | |
, ('\x1E60', "\x1E61") | |
, ('\x1E62', "\x1E63") | |
, ('\x1E64', "\x1E65") | |
, ('\x1E66', "\x1E67") | |
, ('\x1E68', "\x1E69") | |
, ('\x1E6A', "\x1E6B") | |
, ('\x1E6C', "\x1E6D") | |
, ('\x1E6E', "\x1E6F") | |
, ('\x1E70', "\x1E71") | |
, ('\x1E72', "\x1E73") | |
, ('\x1E74', "\x1E75") | |
, ('\x1E76', "\x1E77") | |
, ('\x1E78', "\x1E79") | |
, ('\x1E7A', "\x1E7B") | |
, ('\x1E7C', "\x1E7D") | |
, ('\x1E7E', "\x1E7F") | |
, ('\x1E80', "\x1E81") | |
, ('\x1E82', "\x1E83") | |
, ('\x1E84', "\x1E85") | |
, ('\x1E86', "\x1E87") | |
, ('\x1E88', "\x1E89") | |
, ('\x1E8A', "\x1E8B") | |
, ('\x1E8C', "\x1E8D") | |
, ('\x1E8E', "\x1E8F") | |
, ('\x1E90', "\x1E91") | |
, ('\x1E92', "\x1E93") | |
, ('\x1E94', "\x1E95") | |
, ('\x1E96', "\x0068\x0331") | |
, ('\x1E97', "\x0074\x0308") | |
, ('\x1E98', "\x0077\x030A") | |
, ('\x1E99', "\x0079\x030A") | |
, ('\x1E9A', "\x0061\x02BE") | |
, ('\x1E9B', "\x1E61") | |
, ('\x1EA0', "\x1EA1") | |
, ('\x1EA2', "\x1EA3") | |
, ('\x1EA4', "\x1EA5") | |
, ('\x1EA6', "\x1EA7") | |
, ('\x1EA8', "\x1EA9") | |
, ('\x1EAA', "\x1EAB") | |
, ('\x1EAC', "\x1EAD") | |
, ('\x1EAE', "\x1EAF") | |
, ('\x1EB0', "\x1EB1") | |
, ('\x1EB2', "\x1EB3") | |
, ('\x1EB4', "\x1EB5") | |
, ('\x1EB6', "\x1EB7") | |
, ('\x1EB8', "\x1EB9") | |
, ('\x1EBA', "\x1EBB") | |
, ('\x1EBC', "\x1EBD") | |
, ('\x1EBE', "\x1EBF") | |
, ('\x1EC0', "\x1EC1") | |
, ('\x1EC2', "\x1EC3") | |
, ('\x1EC4', "\x1EC5") | |
, ('\x1EC6', "\x1EC7") | |
, ('\x1EC8', "\x1EC9") | |
, ('\x1ECA', "\x1ECB") | |
, ('\x1ECC', "\x1ECD") | |
, ('\x1ECE', "\x1ECF") | |
, ('\x1ED0', "\x1ED1") | |
, ('\x1ED2', "\x1ED3") | |
, ('\x1ED4', "\x1ED5") | |
, ('\x1ED6', "\x1ED7") | |
, ('\x1ED8', "\x1ED9") | |
, ('\x1EDA', "\x1EDB") | |
, ('\x1EDC', "\x1EDD") | |
, ('\x1EDE', "\x1EDF") | |
, ('\x1EE0', "\x1EE1") | |
, ('\x1EE2', "\x1EE3") | |
, ('\x1EE4', "\x1EE5") | |
, ('\x1EE6', "\x1EE7") | |
, ('\x1EE8', "\x1EE9") | |
, ('\x1EEA', "\x1EEB") | |
, ('\x1EEC', "\x1EED") | |
, ('\x1EEE', "\x1EEF") | |
, ('\x1EF0', "\x1EF1") | |
, ('\x1EF2', "\x1EF3") | |
, ('\x1EF4', "\x1EF5") | |
, ('\x1EF6', "\x1EF7") | |
, ('\x1EF8', "\x1EF9") | |
, ('\x1F08', "\x1F00") | |
, ('\x1F09', "\x1F01") | |
, ('\x1F0A', "\x1F02") | |
, ('\x1F0B', "\x1F03") | |
, ('\x1F0C', "\x1F04") | |
, ('\x1F0D', "\x1F05") | |
, ('\x1F0E', "\x1F06") | |
, ('\x1F0F', "\x1F07") | |
, ('\x1F18', "\x1F10") | |
, ('\x1F19', "\x1F11") | |
, ('\x1F1A', "\x1F12") | |
, ('\x1F1B', "\x1F13") | |
, ('\x1F1C', "\x1F14") | |
, ('\x1F1D', "\x1F15") | |
, ('\x1F28', "\x1F20") | |
, ('\x1F29', "\x1F21") | |
, ('\x1F2A', "\x1F22") | |
, ('\x1F2B', "\x1F23") | |
, ('\x1F2C', "\x1F24") | |
, ('\x1F2D', "\x1F25") | |
, ('\x1F2E', "\x1F26") | |
, ('\x1F2F', "\x1F27") | |
, ('\x1F38', "\x1F30") | |
, ('\x1F39', "\x1F31") | |
, ('\x1F3A', "\x1F32") | |
, ('\x1F3B', "\x1F33") | |
, ('\x1F3C', "\x1F34") | |
, ('\x1F3D', "\x1F35") | |
, ('\x1F3E', "\x1F36") | |
, ('\x1F3F', "\x1F37") | |
, ('\x1F48', "\x1F40") | |
, ('\x1F49', "\x1F41") | |
, ('\x1F4A', "\x1F42") | |
, ('\x1F4B', "\x1F43") | |
, ('\x1F4C', "\x1F44") | |
, ('\x1F4D', "\x1F45") | |
, ('\x1F50', "\x03C5\x0313") | |
, ('\x1F52', "\x03C5\x0313\x0300") | |
, ('\x1F54', "\x03C5\x0313\x0301") | |
, ('\x1F56', "\x03C5\x0313\x0342") | |
, ('\x1F59', "\x1F51") | |
, ('\x1F5B', "\x1F53") | |
, ('\x1F5D', "\x1F55") | |
, ('\x1F5F', "\x1F57") | |
, ('\x1F68', "\x1F60") | |
, ('\x1F69', "\x1F61") | |
, ('\x1F6A', "\x1F62") | |
, ('\x1F6B', "\x1F63") | |
, ('\x1F6C', "\x1F64") | |
, ('\x1F6D', "\x1F65") | |
, ('\x1F6E', "\x1F66") | |
, ('\x1F6F', "\x1F67") | |
, ('\x1F80', "\x1F00\x03B9") | |
, ('\x1F81', "\x1F01\x03B9") | |
, ('\x1F82', "\x1F02\x03B9") | |
, ('\x1F83', "\x1F03\x03B9") | |
, ('\x1F84', "\x1F04\x03B9") | |
, ('\x1F85', "\x1F05\x03B9") | |
, ('\x1F86', "\x1F06\x03B9") | |
, ('\x1F87', "\x1F07\x03B9") | |
, ('\x1F88', "\x1F00\x03B9") | |
, ('\x1F89', "\x1F01\x03B9") | |
, ('\x1F8A', "\x1F02\x03B9") | |
, ('\x1F8B', "\x1F03\x03B9") | |
, ('\x1F8C', "\x1F04\x03B9") | |
, ('\x1F8D', "\x1F05\x03B9") | |
, ('\x1F8E', "\x1F06\x03B9") | |
, ('\x1F8F', "\x1F07\x03B9") | |
, ('\x1F90', "\x1F20\x03B9") | |
, ('\x1F91', "\x1F21\x03B9") | |
, ('\x1F92', "\x1F22\x03B9") | |
, ('\x1F93', "\x1F23\x03B9") | |
, ('\x1F94', "\x1F24\x03B9") | |
, ('\x1F95', "\x1F25\x03B9") | |
, ('\x1F96', "\x1F26\x03B9") | |
, ('\x1F97', "\x1F27\x03B9") | |
, ('\x1F98', "\x1F20\x03B9") | |
, ('\x1F99', "\x1F21\x03B9") | |
, ('\x1F9A', "\x1F22\x03B9") | |
, ('\x1F9B', "\x1F23\x03B9") | |
, ('\x1F9C', "\x1F24\x03B9") | |
, ('\x1F9D', "\x1F25\x03B9") | |
, ('\x1F9E', "\x1F26\x03B9") | |
, ('\x1F9F', "\x1F27\x03B9") | |
, ('\x1FA0', "\x1F60\x03B9") | |
, ('\x1FA1', "\x1F61\x03B9") | |
, ('\x1FA2', "\x1F62\x03B9") | |
, ('\x1FA3', "\x1F63\x03B9") | |
, ('\x1FA4', "\x1F64\x03B9") | |
, ('\x1FA5', "\x1F65\x03B9") | |
, ('\x1FA6', "\x1F66\x03B9") | |
, ('\x1FA7', "\x1F67\x03B9") | |
, ('\x1FA8', "\x1F60\x03B9") | |
, ('\x1FA9', "\x1F61\x03B9") | |
, ('\x1FAA', "\x1F62\x03B9") | |
, ('\x1FAB', "\x1F63\x03B9") | |
, ('\x1FAC', "\x1F64\x03B9") | |
, ('\x1FAD', "\x1F65\x03B9") | |
, ('\x1FAE', "\x1F66\x03B9") | |
, ('\x1FAF', "\x1F67\x03B9") | |
, ('\x1FB2', "\x1F70\x03B9") | |
, ('\x1FB3', "\x03B1\x03B9") | |
, ('\x1FB4', "\x03AC\x03B9") | |
, ('\x1FB6', "\x03B1\x0342") | |
, ('\x1FB7', "\x03B1\x0342\x03B9") | |
, ('\x1FB8', "\x1FB0") | |
, ('\x1FB9', "\x1FB1") | |
, ('\x1FBA', "\x1F70") | |
, ('\x1FBB', "\x1F71") | |
, ('\x1FBC', "\x03B1\x03B9") | |
, ('\x1FBE', "\x03B9") | |
, ('\x1FC2', "\x1F74\x03B9") | |
, ('\x1FC3', "\x03B7\x03B9") | |
, ('\x1FC4', "\x03AE\x03B9") | |
, ('\x1FC6', "\x03B7\x0342") | |
, ('\x1FC7', "\x03B7\x0342\x03B9") | |
, ('\x1FC8', "\x1F72") | |
, ('\x1FC9', "\x1F73") | |
, ('\x1FCA', "\x1F74") | |
, ('\x1FCB', "\x1F75") | |
, ('\x1FCC', "\x03B7\x03B9") | |
, ('\x1FD2', "\x03B9\x0308\x0300") | |
, ('\x1FD3', "\x03B9\x0308\x0301") | |
, ('\x1FD6', "\x03B9\x0342") | |
, ('\x1FD7', "\x03B9\x0308\x0342") | |
, ('\x1FD8', "\x1FD0") | |
, ('\x1FD9', "\x1FD1") | |
, ('\x1FDA', "\x1F76") | |
, ('\x1FDB', "\x1F77") | |
, ('\x1FE2', "\x03C5\x0308\x0300") | |
, ('\x1FE3', "\x03C5\x0308\x0301") | |
, ('\x1FE4', "\x03C1\x0313") | |
, ('\x1FE6', "\x03C5\x0342") | |
, ('\x1FE7', "\x03C5\x0308\x0342") | |
, ('\x1FE8', "\x1FE0") | |
, ('\x1FE9', "\x1FE1") | |
, ('\x1FEA', "\x1F7A") | |
, ('\x1FEB', "\x1F7B") | |
, ('\x1FEC', "\x1FE5") | |
, ('\x1FF2', "\x1F7C\x03B9") | |
, ('\x1FF3', "\x03C9\x03B9") | |
, ('\x1FF4', "\x03CE\x03B9") | |
, ('\x1FF6', "\x03C9\x0342") | |
, ('\x1FF7', "\x03C9\x0342\x03B9") | |
, ('\x1FF8', "\x1F78") | |
, ('\x1FF9', "\x1F79") | |
, ('\x1FFA', "\x1F7C") | |
, ('\x1FFB', "\x1F7D") | |
, ('\x1FFC', "\x03C9\x03B9") | |
, ('\x200B', "") | |
, ('\x200C', "") | |
, ('\x200D', "") | |
, ('\x2060', "") | |
, ('\x20A8', "\x0072\x0073") | |
, ('\x2102', "\x0063") | |
, ('\x2103', "\x00B0\x0063") | |
, ('\x2107', "\x025B") | |
, ('\x2109', "\x00B0\x0066") | |
, ('\x210B', "\x0068") | |
, ('\x210C', "\x0068") | |
, ('\x210D', "\x0068") | |
, ('\x2110', "\x0069") | |
, ('\x2111', "\x0069") | |
, ('\x2112', "\x006C") | |
, ('\x2115', "\x006E") | |
, ('\x2116', "\x006E\x006F") | |
, ('\x2119', "\x0070") | |
, ('\x211A', "\x0071") | |
, ('\x211B', "\x0072") | |
, ('\x211C', "\x0072") | |
, ('\x211D', "\x0072") | |
, ('\x2120', "\x0073\x006D") | |
, ('\x2121', "\x0074\x0065\x006C") | |
, ('\x2122', "\x0074\x006D") | |
, ('\x2124', "\x007A") | |
, ('\x2126', "\x03C9") | |
, ('\x2128', "\x007A") | |
, ('\x212A', "\x006B") | |
, ('\x212B', "\x00E5") | |
, ('\x212C', "\x0062") | |
, ('\x212D', "\x0063") | |
, ('\x2130', "\x0065") | |
, ('\x2131', "\x0066") | |
, ('\x2133', "\x006D") | |
, ('\x213E', "\x03B3") | |
, ('\x213F', "\x03C0") | |
, ('\x2145', "\x0064") | |
, ('\x2160', "\x2170") | |
, ('\x2161', "\x2171") | |
, ('\x2162', "\x2172") | |
, ('\x2163', "\x2173") | |
, ('\x2164', "\x2174") | |
, ('\x2165', "\x2175") | |
, ('\x2166', "\x2176") | |
, ('\x2167', "\x2177") | |
, ('\x2168', "\x2178") | |
, ('\x2169', "\x2179") | |
, ('\x216A', "\x217A") | |
, ('\x216B', "\x217B") | |
, ('\x216C', "\x217C") | |
, ('\x216D', "\x217D") | |
, ('\x216E', "\x217E") | |
, ('\x216F', "\x217F") | |
, ('\x24B6', "\x24D0") | |
, ('\x24B7', "\x24D1") | |
, ('\x24B8', "\x24D2") | |
, ('\x24B9', "\x24D3") | |
, ('\x24BA', "\x24D4") | |
, ('\x24BB', "\x24D5") | |
, ('\x24BC', "\x24D6") | |
, ('\x24BD', "\x24D7") | |
, ('\x24BE', "\x24D8") | |
, ('\x24BF', "\x24D9") | |
, ('\x24C0', "\x24DA") | |
, ('\x24C1', "\x24DB") | |
, ('\x24C2', "\x24DC") | |
, ('\x24C3', "\x24DD") | |
, ('\x24C4', "\x24DE") | |
, ('\x24C5', "\x24DF") | |
, ('\x24C6', "\x24E0") | |
, ('\x24C7', "\x24E1") | |
, ('\x24C8', "\x24E2") | |
, ('\x24C9', "\x24E3") | |
, ('\x24CA', "\x24E4") | |
, ('\x24CB', "\x24E5") | |
, ('\x24CC', "\x24E6") | |
, ('\x24CD', "\x24E7") | |
, ('\x24CE', "\x24E8") | |
, ('\x24CF', "\x24E9") | |
, ('\x3371', "\x0068\x0070\x0061") | |
, ('\x3373', "\x0061\x0075") | |
, ('\x3375', "\x006F\x0076") | |
, ('\x3380', "\x0070\x0061") | |
, ('\x3381', "\x006E\x0061") | |
, ('\x3382', "\x03BC\x0061") | |
, ('\x3383', "\x006D\x0061") | |
, ('\x3384', "\x006B\x0061") | |
, ('\x3385', "\x006B\x0062") | |
, ('\x3386', "\x006D\x0062") | |
, ('\x3387', "\x0067\x0062") | |
, ('\x338A', "\x0070\x0066") | |
, ('\x338B', "\x006E\x0066") | |
, ('\x338C', "\x03BC\x0066") | |
, ('\x3390', "\x0068\x007A") | |
, ('\x3391', "\x006B\x0068\x007A") | |
, ('\x3392', "\x006D\x0068\x007A") | |
, ('\x3393', "\x0067\x0068\x007A") | |
, ('\x3394', "\x0074\x0068\x007A") | |
, ('\x33A9', "\x0070\x0061") | |
, ('\x33AA', "\x006B\x0070\x0061") | |
, ('\x33AB', "\x006D\x0070\x0061") | |
, ('\x33AC', "\x0067\x0070\x0061") | |
, ('\x33B4', "\x0070\x0076") | |
, ('\x33B5', "\x006E\x0076") | |
, ('\x33B6', "\x03BC\x0076") | |
, ('\x33B7', "\x006D\x0076") | |
, ('\x33B8', "\x006B\x0076") | |
, ('\x33B9', "\x006D\x0076") | |
, ('\x33BA', "\x0070\x0077") | |
, ('\x33BB', "\x006E\x0077") | |
, ('\x33BC', "\x03BC\x0077") | |
, ('\x33BD', "\x006D\x0077") | |
, ('\x33BE', "\x006B\x0077") | |
, ('\x33BF', "\x006D\x0077") | |
, ('\x33C0', "\x006B\x03C9") | |
, ('\x33C1', "\x006D\x03C9") | |
, ('\x33C3', "\x0062\x0071") | |
, ('\x33C6', "\x0063\x2215\x006B\x0067") | |
, ('\x33C7', "\x0063\x006F\x002E") | |
, ('\x33C8', "\x0064\x0062") | |
, ('\x33C9', "\x0067\x0079") | |
, ('\x33CB', "\x0068\x0070") | |
, ('\x33CD', "\x006B\x006B") | |
, ('\x33CE', "\x006B\x006D") | |
, ('\x33D7', "\x0070\x0068") | |
, ('\x33D9', "\x0070\x0070\x006D") | |
, ('\x33DA', "\x0070\x0072") | |
, ('\x33DC', "\x0073\x0076") | |
, ('\x33DD', "\x0077\x0062") | |
, ('\xFB00', "\x0066\x0066") | |
, ('\xFB01', "\x0066\x0069") | |
, ('\xFB02', "\x0066\x006C") | |
, ('\xFB03', "\x0066\x0066\x0069") | |
, ('\xFB04', "\x0066\x0066\x006C") | |
, ('\xFB05', "\x0073\x0074") | |
, ('\xFB06', "\x0073\x0074") | |
, ('\xFB13', "\x0574\x0576") | |
, ('\xFB14', "\x0574\x0565") | |
, ('\xFB15', "\x0574\x056B") | |
, ('\xFB16', "\x057E\x0576") | |
, ('\xFB17', "\x0574\x056D") | |
, ('\xFE00', "") | |
, ('\xFE01', "") | |
, ('\xFE02', "") | |
, ('\xFE03', "") | |
, ('\xFE04', "") | |
, ('\xFE05', "") | |
, ('\xFE06', "") | |
, ('\xFE07', "") | |
, ('\xFE08', "") | |
, ('\xFE09', "") | |
, ('\xFE0A', "") | |
, ('\xFE0B', "") | |
, ('\xFE0C', "") | |
, ('\xFE0D', "") | |
, ('\xFE0E', "") | |
, ('\xFE0F', "") | |
, ('\xFEFF', "") | |
, ('\xFF21', "\xFF41") | |
, ('\xFF22', "\xFF42") | |
, ('\xFF23', "\xFF43") | |
, ('\xFF24', "\xFF44") | |
, ('\xFF25', "\xFF45") | |
, ('\xFF26', "\xFF46") | |
, ('\xFF27', "\xFF47") | |
, ('\xFF28', "\xFF48") | |
, ('\xFF29', "\xFF49") | |
, ('\xFF2A', "\xFF4A") | |
, ('\xFF2B', "\xFF4B") | |
, ('\xFF2C', "\xFF4C") | |
, ('\xFF2D', "\xFF4D") | |
, ('\xFF2E', "\xFF4E") | |
, ('\xFF2F', "\xFF4F") | |
, ('\xFF30', "\xFF50") | |
, ('\xFF31', "\xFF51") | |
, ('\xFF32', "\xFF52") | |
, ('\xFF33', "\xFF53") | |
, ('\xFF34', "\xFF54") | |
, ('\xFF35', "\xFF55") | |
, ('\xFF36', "\xFF56") | |
, ('\xFF37', "\xFF57") | |
, ('\xFF38', "\xFF58") | |
, ('\xFF39', "\xFF59") | |
, ('\xFF3A', "\xFF5A") | |
, ('\x10400', "\x10428") | |
, ('\x10401', "\x10429") | |
, ('\x10402', "\x1042A") | |
, ('\x10403', "\x1042B") | |
, ('\x10404', "\x1042C") | |
, ('\x10405', "\x1042D") | |
, ('\x10406', "\x1042E") | |
, ('\x10407', "\x1042F") | |
, ('\x10408', "\x10430") | |
, ('\x10409', "\x10431") | |
, ('\x1040A', "\x10432") | |
, ('\x1040B', "\x10433") | |
, ('\x1040C', "\x10434") | |
, ('\x1040D', "\x10435") | |
, ('\x1040E', "\x10436") | |
, ('\x1040F', "\x10437") | |
, ('\x10410', "\x10438") | |
, ('\x10411', "\x10439") | |
, ('\x10412', "\x1043A") | |
, ('\x10413', "\x1043B") | |
, ('\x10414', "\x1043C") | |
, ('\x10415', "\x1043D") | |
, ('\x10416', "\x1043E") | |
, ('\x10417', "\x1043F") | |
, ('\x10418', "\x10440") | |
, ('\x10419', "\x10441") | |
, ('\x1041A', "\x10442") | |
, ('\x1041B', "\x10443") | |
, ('\x1041C', "\x10444") | |
, ('\x1041D', "\x10445") | |
, ('\x1041E', "\x10446") | |
, ('\x1041F', "\x10447") | |
, ('\x10420', "\x10448") | |
, ('\x10421', "\x10449") | |
, ('\x10422', "\x1044A") | |
, ('\x10423', "\x1044B") | |
, ('\x10424', "\x1044C") | |
, ('\x10425', "\x1044D") | |
, ('\x1D400', "\x0061") | |
, ('\x1D401', "\x0062") | |
, ('\x1D402', "\x0063") | |
, ('\x1D403', "\x0064") | |
, ('\x1D404', "\x0065") | |
, ('\x1D405', "\x0066") | |
, ('\x1D406', "\x0067") | |
, ('\x1D407', "\x0068") | |
, ('\x1D408', "\x0069") | |
, ('\x1D409', "\x006A") | |
, ('\x1D40A', "\x006B") | |
, ('\x1D40B', "\x006C") | |
, ('\x1D40C', "\x006D") | |
, ('\x1D40D', "\x006E") | |
, ('\x1D40E', "\x006F") | |
, ('\x1D40F', "\x0070") | |
, ('\x1D410', "\x0071") | |
, ('\x1D411', "\x0072") | |
, ('\x1D412', "\x0073") | |
, ('\x1D413', "\x0074") | |
, ('\x1D414', "\x0075") | |
, ('\x1D415', "\x0076") | |
, ('\x1D416', "\x0077") | |
, ('\x1D417', "\x0078") | |
, ('\x1D418', "\x0079") | |
, ('\x1D419', "\x007A") | |
, ('\x1D434', "\x0061") | |
, ('\x1D435', "\x0062") | |
, ('\x1D436', "\x0063") | |
, ('\x1D437', "\x0064") | |
, ('\x1D438', "\x0065") | |
, ('\x1D439', "\x0066") | |
, ('\x1D43A', "\x0067") | |
, ('\x1D43B', "\x0068") | |
, ('\x1D43C', "\x0069") | |
, ('\x1D43D', "\x006A") | |
, ('\x1D43E', "\x006B") | |
, ('\x1D43F', "\x006C") | |
, ('\x1D440', "\x006D") | |
, ('\x1D441', "\x006E") | |
, ('\x1D442', "\x006F") | |
, ('\x1D443', "\x0070") | |
, ('\x1D444', "\x0071") | |
, ('\x1D445', "\x0072") | |
, ('\x1D446', "\x0073") | |
, ('\x1D447', "\x0074") | |
, ('\x1D448', "\x0075") | |
, ('\x1D449', "\x0076") | |
, ('\x1D44A', "\x0077") | |
, ('\x1D44B', "\x0078") | |
, ('\x1D44C', "\x0079") | |
, ('\x1D44D', "\x007A") | |
, ('\x1D468', "\x0061") | |
, ('\x1D469', "\x0062") | |
, ('\x1D46A', "\x0063") | |
, ('\x1D46B', "\x0064") | |
, ('\x1D46C', "\x0065") | |
, ('\x1D46D', "\x0066") | |
, ('\x1D46E', "\x0067") | |
, ('\x1D46F', "\x0068") | |
, ('\x1D470', "\x0069") | |
, ('\x1D471', "\x006A") | |
, ('\x1D472', "\x006B") | |
, ('\x1D473', "\x006C") | |
, ('\x1D474', "\x006D") | |
, ('\x1D475', "\x006E") | |
, ('\x1D476', "\x006F") | |
, ('\x1D477', "\x0070") | |
, ('\x1D478', "\x0071") | |
, ('\x1D479', "\x0072") | |
, ('\x1D47A', "\x0073") | |
, ('\x1D47B', "\x0074") | |
, ('\x1D47C', "\x0075") | |
, ('\x1D47D', "\x0076") | |
, ('\x1D47E', "\x0077") | |
, ('\x1D47F', "\x0078") | |
, ('\x1D480', "\x0079") | |
, ('\x1D481', "\x007A") | |
, ('\x1D49C', "\x0061") | |
, ('\x1D49E', "\x0063") | |
, ('\x1D49F', "\x0064") | |
, ('\x1D4A2', "\x0067") | |
, ('\x1D4A5', "\x006A") | |
, ('\x1D4A6', "\x006B") | |
, ('\x1D4A9', "\x006E") | |
, ('\x1D4AA', "\x006F") | |
, ('\x1D4AB', "\x0070") | |
, ('\x1D4AC', "\x0071") | |
, ('\x1D4AE', "\x0073") | |
, ('\x1D4AF', "\x0074") | |
, ('\x1D4B0', "\x0075") | |
, ('\x1D4B1', "\x0076") | |
, ('\x1D4B2', "\x0077") | |
, ('\x1D4B3', "\x0078") | |
, ('\x1D4B4', "\x0079") | |
, ('\x1D4B5', "\x007A") | |
, ('\x1D4D0', "\x0061") | |
, ('\x1D4D1', "\x0062") | |
, ('\x1D4D2', "\x0063") | |
, ('\x1D4D3', "\x0064") | |
, ('\x1D4D4', "\x0065") | |
, ('\x1D4D5', "\x0066") | |
, ('\x1D4D6', "\x0067") | |
, ('\x1D4D7', "\x0068") | |
, ('\x1D4D8', "\x0069") | |
, ('\x1D4D9', "\x006A") | |
, ('\x1D4DA', "\x006B") | |
, ('\x1D4DB', "\x006C") | |
, ('\x1D4DC', "\x006D") | |
, ('\x1D4DD', "\x006E") | |
, ('\x1D4DE', "\x006F") | |
, ('\x1D4DF', "\x0070") | |
, ('\x1D4E0', "\x0071") | |
, ('\x1D4E1', "\x0072") | |
, ('\x1D4E2', "\x0073") | |
, ('\x1D4E3', "\x0074") | |
, ('\x1D4E4', "\x0075") | |
, ('\x1D4E5', "\x0076") | |
, ('\x1D4E6', "\x0077") | |
, ('\x1D4E7', "\x0078") | |
, ('\x1D4E8', "\x0079") | |
, ('\x1D4E9', "\x007A") | |
, ('\x1D504', "\x0061") | |
, ('\x1D505', "\x0062") | |
, ('\x1D507', "\x0064") | |
, ('\x1D508', "\x0065") | |
, ('\x1D509', "\x0066") | |
, ('\x1D50A', "\x0067") | |
, ('\x1D50D', "\x006A") | |
, ('\x1D50E', "\x006B") | |
, ('\x1D50F', "\x006C") | |
, ('\x1D510', "\x006D") | |
, ('\x1D511', "\x006E") | |
, ('\x1D512', "\x006F") | |
, ('\x1D513', "\x0070") | |
, ('\x1D514', "\x0071") | |
, ('\x1D516', "\x0073") | |
, ('\x1D517', "\x0074") | |
, ('\x1D518', "\x0075") | |
, ('\x1D519', "\x0076") | |
, ('\x1D51A', "\x0077") | |
, ('\x1D51B', "\x0078") | |
, ('\x1D51C', "\x0079") | |
, ('\x1D538', "\x0061") | |
, ('\x1D539', "\x0062") | |
, ('\x1D53B', "\x0064") | |
, ('\x1D53C', "\x0065") | |
, ('\x1D53D', "\x0066") | |
, ('\x1D53E', "\x0067") | |
, ('\x1D540', "\x0069") | |
, ('\x1D541', "\x006A") | |
, ('\x1D542', "\x006B") | |
, ('\x1D543', "\x006C") | |
, ('\x1D544', "\x006D") | |
, ('\x1D546', "\x006F") | |
, ('\x1D54A', "\x0073") | |
, ('\x1D54B', "\x0074") | |
, ('\x1D54C', "\x0075") | |
, ('\x1D54D', "\x0076") | |
, ('\x1D54E', "\x0077") | |
, ('\x1D54F', "\x0078") | |
, ('\x1D550', "\x0079") | |
, ('\x1D56C', "\x0061") | |
, ('\x1D56D', "\x0062") | |
, ('\x1D56E', "\x0063") | |
, ('\x1D56F', "\x0064") | |
, ('\x1D570', "\x0065") | |
, ('\x1D571', "\x0066") | |
, ('\x1D572', "\x0067") | |
, ('\x1D573', "\x0068") | |
, ('\x1D574', "\x0069") | |
, ('\x1D575', "\x006A") | |
, ('\x1D576', "\x006B") | |
, ('\x1D577', "\x006C") | |
, ('\x1D578', "\x006D") | |
, ('\x1D579', "\x006E") | |
, ('\x1D57A', "\x006F") | |
, ('\x1D57B', "\x0070") | |
, ('\x1D57C', "\x0071") | |
, ('\x1D57D', "\x0072") | |
, ('\x1D57E', "\x0073") | |
, ('\x1D57F', "\x0074") | |
, ('\x1D580', "\x0075") | |
, ('\x1D581', "\x0076") | |
, ('\x1D582', "\x0077") | |
, ('\x1D583', "\x0078") | |
, ('\x1D584', "\x0079") | |
, ('\x1D585', "\x007A") | |
, ('\x1D5A0', "\x0061") | |
, ('\x1D5A1', "\x0062") | |
, ('\x1D5A2', "\x0063") | |
, ('\x1D5A3', "\x0064") | |
, ('\x1D5A4', "\x0065") | |
, ('\x1D5A5', "\x0066") | |
, ('\x1D5A6', "\x0067") | |
, ('\x1D5A7', "\x0068") | |
, ('\x1D5A8', "\x0069") | |
, ('\x1D5A9', "\x006A") | |
, ('\x1D5AA', "\x006B") | |
, ('\x1D5AB', "\x006C") | |
, ('\x1D5AC', "\x006D") | |
, ('\x1D5AD', "\x006E") | |
, ('\x1D5AE', "\x006F") | |
, ('\x1D5AF', "\x0070") | |
, ('\x1D5B0', "\x0071") | |
, ('\x1D5B1', "\x0072") | |
, ('\x1D5B2', "\x0073") | |
, ('\x1D5B3', "\x0074") | |
, ('\x1D5B4', "\x0075") | |
, ('\x1D5B5', "\x0076") | |
, ('\x1D5B6', "\x0077") | |
, ('\x1D5B7', "\x0078") | |
, ('\x1D5B8', "\x0079") | |
, ('\x1D5B9', "\x007A") | |
, ('\x1D5D4', "\x0061") | |
, ('\x1D5D5', "\x0062") | |
, ('\x1D5D6', "\x0063") | |
, ('\x1D5D7', "\x0064") | |
, ('\x1D5D8', "\x0065") | |
, ('\x1D5D9', "\x0066") | |
, ('\x1D5DA', "\x0067") | |
, ('\x1D5DB', "\x0068") | |
, ('\x1D5DC', "\x0069") | |
, ('\x1D5DD', "\x006A") | |
, ('\x1D5DE', "\x006B") | |
, ('\x1D5DF', "\x006C") | |
, ('\x1D5E0', "\x006D") | |
, ('\x1D5E1', "\x006E") | |
, ('\x1D5E2', "\x006F") | |
, ('\x1D5E3', "\x0070") | |
, ('\x1D5E4', "\x0071") | |
, ('\x1D5E5', "\x0072") | |
, ('\x1D5E6', "\x0073") | |
, ('\x1D5E7', "\x0074") | |
, ('\x1D5E8', "\x0075") | |
, ('\x1D5E9', "\x0076") | |
, ('\x1D5EA', "\x0077") | |
, ('\x1D5EB', "\x0078") | |
, ('\x1D5EC', "\x0079") | |
, ('\x1D5ED', "\x007A") | |
, ('\x1D608', "\x0061") | |
, ('\x1D609', "\x0062") | |
, ('\x1D60A', "\x0063") | |
, ('\x1D60B', "\x0064") | |
, ('\x1D60C', "\x0065") | |
, ('\x1D60D', "\x0066") | |
, ('\x1D60E', "\x0067") | |
, ('\x1D60F', "\x0068") | |
, ('\x1D610', "\x0069") | |
, ('\x1D611', "\x006A") | |
, ('\x1D612', "\x006B") | |
, ('\x1D613', "\x006C") | |
, ('\x1D614', "\x006D") | |
, ('\x1D615', "\x006E") | |
, ('\x1D616', "\x006F") | |
, ('\x1D617', "\x0070") | |
, ('\x1D618', "\x0071") | |
, ('\x1D619', "\x0072") | |
, ('\x1D61A', "\x0073") | |
, ('\x1D61B', "\x0074") | |
, ('\x1D61C', "\x0075") | |
, ('\x1D61D', "\x0076") | |
, ('\x1D61E', "\x0077") | |
, ('\x1D61F', "\x0078") | |
, ('\x1D620', "\x0079") | |
, ('\x1D621', "\x007A") | |
, ('\x1D63C', "\x0061") | |
, ('\x1D63D', "\x0062") | |
, ('\x1D63E', "\x0063") | |
, ('\x1D63F', "\x0064") | |
, ('\x1D640', "\x0065") | |
, ('\x1D641', "\x0066") | |
, ('\x1D642', "\x0067") | |
, ('\x1D643', "\x0068") | |
, ('\x1D644', "\x0069") | |
, ('\x1D645', "\x006A") | |
, ('\x1D646', "\x006B") | |
, ('\x1D647', "\x006C") | |
, ('\x1D648', "\x006D") | |
, ('\x1D649', "\x006E") | |
, ('\x1D64A', "\x006F") | |
, ('\x1D64B', "\x0070") | |
, ('\x1D64C', "\x0071") | |
, ('\x1D64D', "\x0072") | |
, ('\x1D64E', "\x0073") | |
, ('\x1D64F', "\x0074") | |
, ('\x1D650', "\x0075") | |
, ('\x1D651', "\x0076") | |
, ('\x1D652', "\x0077") | |
, ('\x1D653', "\x0078") | |
, ('\x1D654', "\x0079") | |
, ('\x1D655', "\x007A") | |
, ('\x1D670', "\x0061") | |
, ('\x1D671', "\x0062") | |
, ('\x1D672', "\x0063") | |
, ('\x1D673', "\x0064") | |
, ('\x1D674', "\x0065") | |
, ('\x1D675', "\x0066") | |
, ('\x1D676', "\x0067") | |
, ('\x1D677', "\x0068") | |
, ('\x1D678', "\x0069") | |
, ('\x1D679', "\x006A") | |
, ('\x1D67A', "\x006B") | |
, ('\x1D67B', "\x006C") | |
, ('\x1D67C', "\x006D") | |
, ('\x1D67D', "\x006E") | |
, ('\x1D67E', "\x006F") | |
, ('\x1D67F', "\x0070") | |
, ('\x1D680', "\x0071") | |
, ('\x1D681', "\x0072") | |
, ('\x1D682', "\x0073") | |
, ('\x1D683', "\x0074") | |
, ('\x1D684', "\x0075") | |
, ('\x1D685', "\x0076") | |
, ('\x1D686', "\x0077") | |
, ('\x1D687', "\x0078") | |
, ('\x1D688', "\x0079") | |
, ('\x1D689', "\x007A") | |
, ('\x1D6A8', "\x03B1") | |
, ('\x1D6A9', "\x03B2") | |
, ('\x1D6AA', "\x03B3") | |
, ('\x1D6AB', "\x03B4") | |
, ('\x1D6AC', "\x03B5") | |
, ('\x1D6AD', "\x03B6") | |
, ('\x1D6AE', "\x03B7") | |
, ('\x1D6AF', "\x03B8") | |
, ('\x1D6B0', "\x03B9") | |
, ('\x1D6B1', "\x03BA") | |
, ('\x1D6B2', "\x03BB") | |
, ('\x1D6B3', "\x03BC") | |
, ('\x1D6B4', "\x03BD") | |
, ('\x1D6B5', "\x03BE") | |
, ('\x1D6B6', "\x03BF") | |
, ('\x1D6B7', "\x03C0") | |
, ('\x1D6B8', "\x03C1") | |
, ('\x1D6B9', "\x03B8") | |
, ('\x1D6BA', "\x03C3") | |
, ('\x1D6BB', "\x03C4") | |
, ('\x1D6BC', "\x03C5") | |
, ('\x1D6BD', "\x03C6") | |
, ('\x1D6BE', "\x03C7") | |
, ('\x1D6BF', "\x03C8") | |
, ('\x1D6C0', "\x03C9") | |
, ('\x1D6D3', "\x03C3") | |
, ('\x1D6E2', "\x03B1") | |
, ('\x1D6E3', "\x03B2") | |
, ('\x1D6E4', "\x03B3") | |
, ('\x1D6E5', "\x03B4") | |
, ('\x1D6E6', "\x03B5") | |
, ('\x1D6E7', "\x03B6") | |
, ('\x1D6E8', "\x03B7") | |
, ('\x1D6E9', "\x03B8") | |
, ('\x1D6EA', "\x03B9") | |
, ('\x1D6EB', "\x03BA") | |
, ('\x1D6EC', "\x03BB") | |
, ('\x1D6ED', "\x03BC") | |
, ('\x1D6EE', "\x03BD") | |
, ('\x1D6EF', "\x03BE") | |
, ('\x1D6F0', "\x03BF") | |
, ('\x1D6F1', "\x03C0") | |
, ('\x1D6F2', "\x03C1") | |
, ('\x1D6F3', "\x03B8") | |
, ('\x1D6F4', "\x03C3") | |
, ('\x1D6F5', "\x03C4") | |
, ('\x1D6F6', "\x03C5") | |
, ('\x1D6F7', "\x03C6") | |
, ('\x1D6F8', "\x03C7") | |
, ('\x1D6F9', "\x03C8") | |
, ('\x1D6FA', "\x03C9") | |
, ('\x1D70D', "\x03C3") | |
, ('\x1D71C', "\x03B1") | |
, ('\x1D71D', "\x03B2") | |
, ('\x1D71E', "\x03B3") | |
, ('\x1D71F', "\x03B4") | |
, ('\x1D720', "\x03B5") | |
, ('\x1D721', "\x03B6") | |
, ('\x1D722', "\x03B7") | |
, ('\x1D723', "\x03B8") | |
, ('\x1D724', "\x03B9") | |
, ('\x1D725', "\x03BA") | |
, ('\x1D726', "\x03BB") | |
, ('\x1D727', "\x03BC") | |
, ('\x1D728', "\x03BD") | |
, ('\x1D729', "\x03BE") | |
, ('\x1D72A', "\x03BF") | |
, ('\x1D72B', "\x03C0") | |
, ('\x1D72C', "\x03C1") | |
, ('\x1D72D', "\x03B8") | |
, ('\x1D72E', "\x03C3") | |
, ('\x1D72F', "\x03C4") | |
, ('\x1D730', "\x03C5") | |
, ('\x1D731', "\x03C6") | |
, ('\x1D732', "\x03C7") | |
, ('\x1D733', "\x03C8") | |
, ('\x1D734', "\x03C9") | |
, ('\x1D747', "\x03C3") | |
, ('\x1D756', "\x03B1") | |
, ('\x1D757', "\x03B2") | |
, ('\x1D758', "\x03B3") | |
, ('\x1D759', "\x03B4") | |
, ('\x1D75A', "\x03B5") | |
, ('\x1D75B', "\x03B6") | |
, ('\x1D75C', "\x03B7") | |
, ('\x1D75D', "\x03B8") | |
, ('\x1D75E', "\x03B9") | |
, ('\x1D75F', "\x03BA") | |
, ('\x1D760', "\x03BB") | |
, ('\x1D761', "\x03BC") | |
, ('\x1D762', "\x03BD") | |
, ('\x1D763', "\x03BE") | |
, ('\x1D764', "\x03BF") | |
, ('\x1D765', "\x03C0") | |
, ('\x1D766', "\x03C1") | |
, ('\x1D767', "\x03B8") | |
, ('\x1D768', "\x03C3") | |
, ('\x1D769', "\x03C4") | |
, ('\x1D76A', "\x03C5") | |
, ('\x1D76B', "\x03C6") | |
, ('\x1D76C', "\x03C7") | |
, ('\x1D76D', "\x03C8") | |
, ('\x1D76E', "\x03C9") | |
, ('\x1D781', "\x03C3") | |
, ('\x1D790', "\x03B1") | |
, ('\x1D791', "\x03B2") | |
, ('\x1D792', "\x03B3") | |
, ('\x1D793', "\x03B4") | |
, ('\x1D794', "\x03B5") | |
, ('\x1D795', "\x03B6") | |
, ('\x1D796', "\x03B7") | |
, ('\x1D797', "\x03B8") | |
, ('\x1D798', "\x03B9") | |
, ('\x1D799', "\x03BA") | |
, ('\x1D79A', "\x03BB") | |
, ('\x1D79B', "\x03BC") | |
, ('\x1D79C', "\x03BD") | |
, ('\x1D79D', "\x03BE") | |
, ('\x1D79E', "\x03BF") | |
, ('\x1D79F', "\x03C0") | |
, ('\x1D7A0', "\x03C1") | |
, ('\x1D7A1', "\x03B8") | |
, ('\x1D7A2', "\x03C3") | |
, ('\x1D7A3', "\x03C4") | |
, ('\x1D7A4', "\x03C5") | |
, ('\x1D7A5', "\x03C6") | |
, ('\x1D7A6', "\x03C7") | |
, ('\x1D7A7', "\x03C8") | |
, ('\x1D7A8', "\x03C9") | |
, ('\x1D7BB', "\x03C3") | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment