#--------------------------------------------------------------------
# Copyright (c) 1999-2004, International Business Machines
# Corporation and others. All Rights Reserved.
#--------------------------------------------------------------------

# InterIndic-Bengali
#:: NFD (NFC) ;
\uE001>\u0981;          # SIGN CANDRABINDU
\uE002>\u0982;          # SIGN ANUSVARA
\uE003>\u0983;          # SIGN VISARGA
\uE005>\u0985;          # LETTER A
\uE006>\u0986;          # LETTER AA
\uE007>\u0987;          # LETTER I
\uE008>\u0988;          # LETTER II
\uE009>\u0989;          # LETTER U
\uE00A>\u098A;          # LETTER UU
\uE00B>\u098B;          # LETTER VOCALIC R
\uE00C>\u098C;          # LETTER VOCALIC L
\uE00D>\u098F;          # FALLBACK
\uE00E>\u098F;          # FALLBACK
\uE00F>\u098F;          # LETTER E
\uE010>\u0990;          # LETTER AI
\uE011>\u0993;          # FALLBACK
\uE012>\u0993;          # FALLBACK
\uE013>\u0993;          # LETTER O
\uE014>\u0994;          # LETTER AU
\uE015>\u0995;          # LETTER KA
\uE016>\u0996;          # LETTER KHA
\uE017>\u0997;          # LETTER GA
\uE018>\u0998;          # LETTER GHA
\uE019>\u0999;          # LETTER NGA
\uE01A>\u099A;          # LETTER CA
\uE01B>\u099B;          # LETTER CHA
\uE01C>\u099C;          # LETTER JA
\uE01D>\u099D;          # LETTER JHA
\uE01E>\u099E;          # LETTER NYA
\uE01F>\u099F;          # LETTER TTA
\uE020>\u09A0;          # LETTER TTHA
\uE021>\u09A1;          # LETTER DDA
\uE022>\u09A2;          # LETTER DDHA
\uE023>\u09A3;          # LETTER NNA
\uE024>\u09A4;          # LETTER TA
\uE025>\u09A5;          # LETTER THA
\uE026>\u09A6;          # LETTER DA
\uE027>\u09A7;          # LETTER DHA
\uE028>\u09A8;          # LETTER NA
\uE029>\u09A8\u09BC;    # REMAP (indicExceptions.txt): \u09a9>\u09a8 = LETTER NNNA>LETTER NA
\uE02A>\u09AA;          # LETTER PA
\uE02B>\u09AB;          # LETTER PHA
\uE02C>\u09AC;          # LETTER BA
\uE02D>\u09AD;          # LETTER BHA
\uE02E>\u09AE;          # LETTER MA
\uE02F>\u09AF;          # LETTER YA
\uE030>\u09B0;          # LETTER RA
\uE031>\u09B0\u09BC;    # FALLBACK to RA
\uE032>\u09B2;          # LETTER LA
\uE033>\u09B2;          # REMAP (indicExceptions.txt): \u09b3>\u09b2 = LETTER LLA>LETTER LA
\uE034>\u09B2;          # REMAP (indicExceptions.txt): \u09b4>\u09b2 = LETTER LLLA>LETTER LA
\uE035>\u09AC;          # REMAP (indicExceptions.txt): \u09b5>\u09ac = LETTER VA>LETTER BA
\uE036>\u09B6;          # LETTER SHA
\uE037>\u09B7;          # LETTER SSA
\uE038>\u09B8;          # LETTER SA
\uE039>\u09B9;          # LETTER HA
\uE03C>\u09BC;          # SIGN NUKTA
\uE03D>;                # FALLBACK BLOW AWAY AVAGRAHA
\uE03E>\u09BE;          # VOWEL SIGN AA
\uE03F>\u09BF;          # VOWEL SIGN I
\uE040>\u09C0;          # VOWEL SIGN II
\uE041>\u09C1;          # VOWEL SIGN U
\uE042>\u09C2;          # VOWEL SIGN UU
\uE043>\u09C3;          # VOWEL SIGN VOCALIC R
\uE044>\u09C4;          # VOWEL SIGN VOCALIC RR
\uE045>\u09C7;          # REMAP (indicExceptions.txt): \u09c5>\u09c7 = VOWEL SIGN CANDRA E>VOWEL SIGN E
\uE046>\u09C7;          # FALLBACK
\uE047>\u09C7;          # VOWEL SIGN E
\uE048>\u09C8;          # VOWEL SIGN AI
\uE049>\u09C7\u09BE;    # REMAP (indicExceptions.txt): \u09c9>\u09cb = VOWEL SIGN CANDRA O>VOWEL SIGN O
\uE04A>\u09C7\u09BE;    # FALLBACK
\uE04B>\u09C7\u09BE;    # VOWEL SIGN O
\uE04C>\u09C7\u09D7;    # VOWEL SIGN AU
\uE04D>\u09CD;          # SIGN VIRAMA
\uE050>\u0993\u0982;    #  InterIndic-Bengali: OM
\ue051>;
\ue052>;
\ue053>;
\ue054>;
\uE055>;                # LENGTH MARK
\uE056>\u09C8;          # REMAP (indicExceptions.txt): \u09d6>\u09c8 = AI LENGTH MARK>VOWEL SIGN AI
\uE057>\u09D7;          # AU LENGTH MARK
\uE058>\u0995\u09BC;    # FALLBACK
\uE059>\u0996\u09BC;    # REMAP (indicExceptions.txt): \u09d9>\u0996 = LETTER KHHA>LETTER KHA
\uE05A>\u0997\u09BC;    # REMAP (indicExceptions.txt): \u09da>\u0997 = LETTER GHHA>LETTER GA
\uE05B>\u099C\u09BC;    # REMAP (indicExceptions.txt): \u09db>\u099c = LETTER ZA>LETTER JA
\uE05C>\u09A1\u09BC;    # FALLBACK
\uE05D>\u09A2\u09BC;    # LETTER RHA
\uE05E>\u09AB\u09BC;    # REMAP (indicExceptions.txt): \u09de>\u09ab = LETTER FA>LETTER PHA
\uE05F>\u09AF\u09BC;    # LETTER YYA
\uE060>\u09E0;          # LETTER VOCALIC RR
\uE061>\u09E1;          # LETTER VOCALIC LL
\uE062>\u09E2;          # VOWEL SIGN VOCALIC L
\uE063>\u09E3;          # VOWEL SIGN VOCALIC LL
\uE064>\u0964;          # DANDA
\uE065>\u0965;          # DOUBLE DANDA
\uE066>\u09E6;          # DIGIT ZERO
\uE067>\u09E7;          # DIGIT ONE
\uE068>\u09E8;          # DIGIT TWO
\uE069>\u09E9;          # DIGIT THREE
\uE06A>\u09EA;          # DIGIT FOUR
\uE06B>\u09EB;          # DIGIT FIVE
\uE06C>\u09EC;          # DIGIT SIX
\uE06D>\u09ED;          # DIGIT SEVEN
\uE06E>\u09EE;          # DIGIT EIGHT
\uE06F>\u09EF;          # DIGIT NINE
\ue070>;                # ABBREVIATION SIGN
\ue071>\u09F0;          # LETTER RA WITH MIDDLE DIAGONAL
\ue072>\u09F1;          # LETTER RA WITH LOWER DIAGONAL
\ue073>\u09F2;          # RUPEE MARK
\ue074>\u09F3;          # RUPEE SIGN
\ue075>\u09F4;          # CURRENCY NUMERATOR ONE
\ue076>\u09F5;          # CURRENCY NUMERATOR TWO
\ue077>\u09F6;          # CURRENCY NUMERATOR THREE
\ue078>\u09F7;          # CURRENCY NUMERATOR FOUR
\ue079>\u09F8;          # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
\ue07A>\u09F9;          # CURRENCY DENOMINATOR SIXTEEN
\ue07B>\u09FA;          # ISSHAR
\uE07C>;                # TIPPI
\uE07D>;                # ADDAK
\uE07E>;                # IRI
\uE07F>;                # URA
\uE080>;                # EK ONKAR

0 > \u09E6;       # FALLBACK FOR TAMIL
1 > \u09E7;











#    :: NFC (NFD) ;
# eof
