﻿ // -*- Coding: utf-8; -*-
//--------------------------------------------------------------------
// Copyright (c) 1999-2001, International Business Machines
// Corporation and others.  All Rights Reserved.
//--------------------------------------------------------------------
// THIS IS A MACHINE-GENERATED FILE
// Tool: dumpicurules.bat
// Source: ../../text/resources/Transliterator_InterIndic_Gujarati.txt
// Date: Mon Dec  3 11:44:29 2001
//--------------------------------------------------------------------

// InterIndic_Gujarati

translit_InterIndic_Gujarati {
  Rule {
//--------------------------------------------------------------------
// 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_Gujarati.utf8.txt
// Date: Thu Mar  1 20:03:55 2001
//--------------------------------------------------------------------
// InterIndic_Gujarati
//--------------------------------------------------------------------
// Copyright (c) 1999-2001, International Business Machines
// Corporation and others.  All Rights Reserved.
//--------------------------------------------------------------------
// Date: Tue Jan 23 12:41:59 2001
//--------------------------------------------------------------------
// InterIndic-Gujarati
//:: NFD (NFC) ;
"\ue001>\u0a81;" // SIGN CANDRABINDU
"\ue002>\u0a82;" // SIGN ANUSVARA
"\ue003>\u0a83;" // SIGN VISARGA
"\ue005>\u0a85;" // LETTER A
"\ue006>\u0a86;" // LETTER AA
"\ue007>\u0a87;" // LETTER I
"\ue008>\u0a88;" // LETTER II
"\ue009>\u0a89;" // LETTER U
"\ue00a>\u0a8a;" // LETTER UU
"\ue00b>\u0a8b;" // LETTER VOCALIC R
"\ue00c>\u0ab2\u0ac3;" // REMAP (indicExceptions.txt): \u0a8c>\u0ab2\u0ac3 = LETTER VOCALIC L>LETTER LA.VOWEL SIGN VOCALIC R
"\ue00d>\u0a8d;" // GUJARATI VOWEL CANDRA E
"\ue00e>\u0a8f;" // FALLBACK
"\ue00f>\u0a8f;" //  InterIndic-Gujarati: LETTER EE (\u0a8f = LETTER E)
"\ue010>\u0a90;" // LETTER AI
"\ue011>\u0a91;" // FALLBACK
"\ue012>\u0a93;" // FALLBACK
"\ue013>\u0a93;" // UNMAPPED InterIndic-Gujarati: LETTER OO (\u0a93 = LETTER O)
"\ue014>\u0a94;" // LETTER AU
"\ue015>\u0a95;" // LETTER KA
"\ue016>\u0a96;" // LETTER KHA
"\ue017>\u0a97;" // LETTER GA
"\ue018>\u0a98;" // LETTER GHA
"\ue019>\u0a99;" // LETTER NGA
"\ue01a>\u0a9a;" // LETTER CA
"\ue01b>\u0a9b;" // LETTER CHA
"\ue01c>\u0a9c;" // LETTER JA
"\ue01d>\u0a9d;" // LETTER JHA
"\ue01e>\u0a9e;" // LETTER NYA
"\ue01f>\u0a9f;" // LETTER TTA
"\ue020>\u0aa0;" // LETTER TTHA
"\ue021>\u0aa1;" // LETTER DDA
"\ue022>\u0aa2;" // LETTER DDHA
"\ue023>\u0aa3;" // LETTER NNA
"\ue024>\u0aa4;" // LETTER TA
"\ue025>\u0aa5;" // LETTER THA
"\ue026>\u0aa6;" // LETTER DA
"\ue027>\u0aa7;" // LETTER DHA
"\ue028>\u0aa8;" // LETTER NA
"\ue029>\u0aa8\u0abc;" // FALLBACK to NA+NUKTA
"\ue02a>\u0aaa;" // LETTER PA
"\ue02b>\u0aab;" // LETTER PHA
"\ue02c>\u0aac;" // LETTER BA
"\ue02d>\u0aad;" // LETTER BHA
"\ue02e>\u0aae;" // LETTER MA
"\ue02f>\u0aaf;" // LETTER YA
"\ue030>\u0ab0;" // LETTER RA
"\ue031>\u0ab0\u0abc;" // FALLBACK
"\ue032>\u0ab2;" // LETTER LA
"\ue033>\u0ab3;" // LETTER LLA
"\ue034>\u0ab3\u0abc;" //  LETTER LLLA>LETTER LLA+NUKTA
"\ue035>\u0ab5;" // LETTER VA
"\ue036>\u0ab6;" // LETTER SHA
"\ue037>\u0ab7;" // LETTER SSA
"\ue038>\u0ab8;" // LETTER SA
"\ue039>\u0ab9;" // LETTER HA
"\ue03c>\u0abc;" // SIGN NUKTA
"\ue03d>\u0abd;" // SIGN AVAGRAHA
"\ue03e>\u0abe;" // VOWEL SIGN AA
"\ue03f>\u0abf;" // VOWEL SIGN I
"\ue040>\u0ac0;" // VOWEL SIGN II
"\ue041>\u0ac1;" // VOWEL SIGN U
"\ue042>\u0ac2;" // VOWEL SIGN UU
"\ue043>\u0ac3;" // VOWEL SIGN VOCALIC R
"\ue044>\u0ac4;" // VOWEL SIGN VOCALIC RR
"\ue045>\u0ac5;" // VOWEL SIGN CANDRA E
"\ue046>\u0ac7;" // FALLBACK
"\ue047>\u0ac7;" //  InterIndic-Gujarati: VOWEL SIGN EE (\u0ac7 = VOWEL SIGN E)
"\ue048>\u0ac8;" // VOWEL SIGN AI
"\ue049>\u0ac9;" // VOWEL SIGN CANDRA O
"\ue04a>\u0acb;" // FALLBACK
"\ue04b>\u0acb;" // UNMAPPED InterIndic-Gujarati: VOWEL SIGN OO (\u0acb = VOWEL SIGN O)
"\ue04c>\u0acc;" // VOWEL SIGN AU
"\ue04d>\u0acd;" // SIGN VIRAMA
"\ue050>\u0ad0;" // OM
"\ue051>;"
"\ue052>;"
"\ue053>;"
"\ue054>;"
"\ue055>;" // UNMAPPED InterIndic-Gujarati: LENGTH MARK
"\ue056>\u0ac8;" // REMAP (indicExceptions.txt): \u0ad6>\u0ac8 = AI LENGTH MARK>VOWEL SIGN AI
"\ue057>\u0acc;" // REMAP (indicExceptions.txt): \u0ad7>\u0acc = AU LENGTH MARK>VOWEL SIGN AU
"\ue058>\u0a95\u0abc;" // FALLBACK
"\ue059>\u0a96\u0abc;" // REMAP (indicExceptions.txt): \u0ad9>\u0a96\u0abc = LETTER KHHA>LETTER KHA.SIGN NUKTA
"\ue05a>\u0a97\u0abc;" // REMAP (indicExceptions.txt): \u0ada>\u0a97\u0abc = LETTER GHHA>LETTER GA.SIGN NUKTA
"\ue05b>\u0a9c\u0abc;" // REMAP (indicExceptions.txt): \u0adb>\u0a9c\u0abc = LETTER ZA>LETTER JA.SIGN NUKTA
"\ue05c>\u0aa1\u0abc;" // FALLBACK
"\ue05d>\u0aa2\u0abc;" // REMAP (indicExceptions.txt): \u0add>\u0aa2\u0abc = LETTER RHA>LETTER DDHA.SIGN NUKTA
"\ue05e>\u0aab\u0abc;" // REMAP (indicExceptions.txt): \u0ade>\u0aab\u0abc = LETTER FA>LETTER PHA.SIGN NUKTA
"\ue05f>\u0aaf\u0abc;" // REMAP (indicExceptions.txt): \u0adf>\u0aaf\u0abc = LETTER YYA>LETTER YA.SIGN NUKTA
"\ue060>\u0ae0;" // LETTER VOCALIC RR
"\ue061>\u0ab2\u0ac3;" // REMAP (indicExceptions.txt): \u0ae1>\u0ab2\u0ac3 = LETTER VOCALIC LL>LETTER LA.VOWEL SIGN VOCALIC R
"\ue062>\u0abf\u0abc;" // REMAP (indicExceptions.txt): \u0ae2>\u0abf\u0abc = VOWEL SIGN VOCALIC L>VOWEL SIGN I.SIGN NUKTA
"\ue063>\u0ac0\u0abc;" // REMAP (indicExceptions.txt): \u0ae3>\u0ac0\u0abc = VOWEL SIGN VOCALIC LL>VOWEL SIGN II.SIGN NUKTA
"\uE064>\u0964;"          // DANDA
"\uE065>\u0965;"          // DOUBLE DANDA
"\ue066>\u0ae6;" // DIGIT ZERO
"\ue067>\u0ae7;" // DIGIT ONE
"\ue068>\u0ae8;" // DIGIT TWO
"\ue069>\u0ae9;" // DIGIT THREE
"\ue06a>\u0aea;" // DIGIT FOUR
"\ue06b>\u0aeb;" // DIGIT FIVE
"\ue06c>\u0aec;" // DIGIT SIX
"\ue06d>\u0aed;" // DIGIT SEVEN
"\ue06e>\u0aee;" // DIGIT EIGHT
"\ue06f>\u0aef;" // DIGIT NINE
"\ue070>;"
"\ue071>;"
"\ue072>;"
"\ue073>;"
"\ue074>;"
"0 > \u0ae6;"       // FALLBACK FOR TAMIL
"1 > \u0ae7;"
"\ue0f0 >  \u0ab0;"  // FALLBACK RA 
"\ue0f1 >  \u0ab0;"  // FALLBACK RA
//\ue080>; # UNMAPPED InterIndic-Gujarati: ISSHAR
//    :: NFC (NFD) ;
// eof
  }
}
