#--------------------------------------------------------------------
# Copyright (c) 1999-2001, International Business Machines
# Corporation and others.  All Rights Reserved.
#--------------------------------------------------------------------
# THIS IS A MACHINE-GENERATED FILE
# Tool: dumpICUrules.bat
# Source: \u005cicu4j\u005csrc\u005ccom\u005cibm\u005ctext\u005cresources/Transliterator_InterIndic_Bengali.utf8.txt
# Date: Thu Mar  1 20:03:55 2001
#--------------------------------------------------------------------
# InterIndic_Bengali
#--------------------------------------------------------------------
# Copyright (c) 1999-2001, International Business Machines
# Corporation and others.  All Rights Reserved.
#--------------------------------------------------------------------
# Date: Tue Jan 23 12:41:59 2001
#--------------------------------------------------------------------
# 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>;               # UNMAPPED InterIndic-Bengali: 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>;
\uE071>;
\uE0FA>\u09FA;          # ISSHAR
0 > \u09E6;       # FALLBACK FOR TAMIL
1 > \u09E7;
\ue072>;
\ue073>;
\ue074>;

#    :: NFC (NFD) ;
# eof
