v2;
package unicode;
pkgpath unicode;
init unicode unicode..import;
var ASCII_Hex_Digit <type 1 *<type 2 "RangeTable" <type 3 struct { R16 <type 4 [] <type 5 "Range16" <type 6 struct { Lo <type -6>; Hi <type -6>; Stride <type -6>; }>>>; R32 <type 7 [] <type 8 "Range32" <type 9 struct { Lo <type -7>; Hi <type -7>; Stride <type -7>; }>>>; LatinOffset <type -11>; }>>>;
var Adlam <type 1>;
var Ahom <type 1>;
var Anatolian_Hieroglyphs <type 1>;
var Arabic <type 1>;
var Armenian <type 1>;
var Avestan <type 1>;
var AzeriCase <type 10 "SpecialCase" <type 11 [] <type 12 "CaseRange" <type 13 struct { Lo <type -7>; Hi <type -7>; Delta <type 14 ".unicode.d" <type 15 [3 ] <type -21>>>; }>>>
 func (special <type 10>) ToUpper (r <type -21>) <type -21>;
 func (special <type 10>) ToTitle (r <type -21>) <type -21>;
 func (special <type 10>) ToLower (r <type -21>) <type -21>;
>;
var Balinese <type 1>;
var Bamum <type 1>;
var Bassa_Vah <type 1>;
var Batak <type 1>;
var Bengali <type 1>;
var Bhaiksuki <type 1>;
var Bidi_Control <type 1>;
var Bopomofo <type 1>;
var Brahmi <type 1>;
var Braille <type 1>;
var Buginese <type 1>;
var Buhid <type 1>;
var C <type 1>;
var Canadian_Aboriginal <type 1>;
var Carian <type 1>;
type <type 12>;
var CaseRanges <type 16 [] <type 12>>;
var Categories <type 17 map [<type -16>] <type 1>>;
var Caucasian_Albanian <type 1>;
var Cc <type 1>;
var Cf <type 1>;
var Chakma <type 1>;
var Cham <type 1>;
var Cherokee <type 1>;
var Co <type 1>;
var Common <type 1>;
var Coptic <type 1>;
var Cs <type 1>;
var Cuneiform <type 1>;
var Cypriot <type 1>;
var Cyrillic <type 1>;
var Dash <type 1>;
var Deprecated <type 1>;
var Deseret <type 1>;
var Devanagari <type 1>;
var Diacritic <type 1>;
var Digit <type 1>;
var Duployan <type 1>;
var Egyptian_Hieroglyphs <type 1>;
var Elbasan <type 1>;
var Ethiopic <type 1>;
var Extender <type 1>;
var FoldCategory <type 18 map [<type -16>] <type 1>>;
var FoldScript <type 19 map [<type -16>] <type 1>>;
var Georgian <type 1>;
var Glagolitic <type 1>;
var Gothic <type 1>;
var Grantha <type 1>;
var GraphicRanges <type 20 [] <type 21 *<type 2>>>;
var Greek <type 1>;
var Gujarati <type 1>;
var Gurmukhi <type 1>;
var Han <type 1>;
var Hangul <type 1>;
var Hanunoo <type 1>;
var Hatran <type 1>;
var Hebrew <type 1>;
var Hex_Digit <type 1>;
var Hiragana <type 1>;
var Hyphen <type 1>;
var IDS_Binary_Operator <type 1>;
var IDS_Trinary_Operator <type 1>;
var Ideographic <type 1>;
var Imperial_Aramaic <type 1>;
func In (r <type -21>, ranges ...<type 22 *<type 2>>) <type -15>;
var Inherited <type 1>;
var Inscriptional_Pahlavi <type 1>;
var Inscriptional_Parthian <type 1>;
func Is (rangeTab <type 1>, r <type -21>) <type -15>;
func IsControl (r <type -21>) <type -15>;
func IsDigit (r <type -21>) <type -15>;
func IsGraphic (r <type -21>) <type -15>;
func IsLetter (r <type -21>) <type -15>;
func IsLower (r <type -21>) <type -15>;
func IsMark (r <type -21>) <type -15>;
func IsNumber (r <type -21>) <type -15>;
func IsOneOf (ranges <type 23 [] <type 24 *<type 2>>>, r <type -21>) <type -15>;
func IsPrint (r <type -21>) <type -15>;
func IsPunct (r <type -21>) <type -15>;
func IsSpace (r <type -21>) <type -15>;
func IsSymbol (r <type -21>) <type -15>;
func IsTitle (r <type -21>) <type -15>;
func IsUpper (r <type -21>) <type -15>;
var Javanese <type 1>;
var Join_Control <type 1>;
var Kaithi <type 1>;
var Kannada <type 1>;
var Katakana <type 1>;
var Kayah_Li <type 1>;
var Kharoshthi <type 1>;
var Khmer <type 1>;
var Khojki <type 1>;
var Khudawadi <type 1>;
var L <type 1>;
var Lao <type 1>;
var Latin <type 1>;
var Lepcha <type 1>;
var Letter <type 1>;
var Limbu <type 1>;
var Linear_A <type 1>;
var Linear_B <type 1>;
var Lisu <type 1>;
var Ll <type 1>;
var Lm <type 1>;
var Lo <type 1>;
var Logical_Order_Exception <type 1>;
var Lower <type 1>;
const LowerCase = 1 ;
var Lt <type 1>;
var Lu <type 1>;
var Lycian <type 1>;
var Lydian <type 1>;
var M <type 1>;
var Mahajani <type 1>;
var Malayalam <type 1>;
var Mandaic <type 1>;
var Manichaean <type 1>;
var Marchen <type 1>;
var Mark <type 1>;
const MaxASCII = 127' ;
const MaxCase = 3 ;
const MaxLatin1 = 255' ;
const MaxRune = 1114111' ;
var Mc <type 1>;
var Me <type 1>;
var Meetei_Mayek <type 1>;
var Mende_Kikakui <type 1>;
var Meroitic_Cursive <type 1>;
var Meroitic_Hieroglyphs <type 1>;
var Miao <type 1>;
var Mn <type 1>;
var Modi <type 1>;
var Mongolian <type 1>;
var Mro <type 1>;
var Multani <type 1>;
var Myanmar <type 1>;
var N <type 1>;
var Nabataean <type 1>;
var Nd <type 1>;
var New_Tai_Lue <type 1>;
var Newa <type 1>;
var Nko <type 1>;
var Nl <type 1>;
var No <type 1>;
var Noncharacter_Code_Point <type 1>;
var Number <type 1>;
var Ogham <type 1>;
var Ol_Chiki <type 1>;
var Old_Hungarian <type 1>;
var Old_Italic <type 1>;
var Old_North_Arabian <type 1>;
var Old_Permic <type 1>;
var Old_Persian <type 1>;
var Old_South_Arabian <type 1>;
var Old_Turkic <type 1>;
var Oriya <type 1>;
var Osage <type 1>;
var Osmanya <type 1>;
var Other <type 1>;
var Other_Alphabetic <type 1>;
var Other_Default_Ignorable_Code_Point <type 1>;
var Other_Grapheme_Extend <type 1>;
var Other_ID_Continue <type 1>;
var Other_ID_Start <type 1>;
var Other_Lowercase <type 1>;
var Other_Math <type 1>;
var Other_Uppercase <type 1>;
var P <type 1>;
var Pahawh_Hmong <type 1>;
var Palmyrene <type 1>;
var Pattern_Syntax <type 1>;
var Pattern_White_Space <type 1>;
var Pau_Cin_Hau <type 1>;
var Pc <type 1>;
var Pd <type 1>;
var Pe <type 1>;
var Pf <type 1>;
var Phags_Pa <type 1>;
var Phoenician <type 1>;
var Pi <type 1>;
var Po <type 1>;
var Prepended_Concatenation_Mark <type 1>;
var PrintRanges <type 25 [] <type 26 *<type 2>>>;
var Properties <type 27 map [<type -16>] <type 1>>;
var Ps <type 1>;
var Psalter_Pahlavi <type 1>;
var Punct <type 1>;
var Quotation_Mark <type 1>;
var Radical <type 1>;
type <type 5>;
type <type 8>;
type <type 2>;
var Rejang <type 1>;
const ReplacementChar = 65533' ;
var Runic <type 1>;
var S <type 1>;
var STerm <type 1>;
var Samaritan <type 1>;
var Saurashtra <type 1>;
var Sc <type 1>;
var Scripts <type 28 map [<type -16>] <type 1>>;
var Sentence_Terminal <type 1>;
var Sharada <type 1>;
var Shavian <type 1>;
var Siddham <type 1>;
var SignWriting <type 1>;
func SimpleFold (r <type -21>) <type -21>;
var Sinhala <type 1>;
var Sk <type 1>;
var Sm <type 1>;
var So <type 1>;
var Soft_Dotted <type 1>;
var Sora_Sompeng <type 1>;
var Space <type 1>;
type <type 10>;
var Sundanese <type 1>;
var Syloti_Nagri <type 1>;
var Symbol <type 1>;
var Syriac <type 1>;
var Tagalog <type 1>;
var Tagbanwa <type 1>;
var Tai_Le <type 1>;
var Tai_Tham <type 1>;
var Tai_Viet <type 1>;
var Takri <type 1>;
var Tamil <type 1>;
var Tangut <type 1>;
var Telugu <type 1>;
var Terminal_Punctuation <type 1>;
var Thaana <type 1>;
var Thai <type 1>;
var Tibetan <type 1>;
var Tifinagh <type 1>;
var Tirhuta <type 1>;
var Title <type 1>;
const TitleCase = 2 ;
func To (_case <type -11>, r <type -21>) <type -21>;
func ToLower (r <type -21>) <type -21>;
func ToTitle (r <type -21>) <type -21>;
func ToUpper (r <type -21>) <type -21>;
var TurkishCase <type 10>;
var Ugaritic <type 1>;
var Unified_Ideograph <type 1>;
var Upper <type 1>;
const UpperCase = 0 ;
const UpperLower = 1114112' ;
var Vai <type 1>;
var Variation_Selector <type 1>;
const Version = "9.0.0";
var Warang_Citi <type 1>;
var White_Space <type 1>;
var Yi <type 1>;
var Z <type 1>;
var Zl <type 1>;
var Zp <type 1>;
var Zs <type 1>;
checksum 7643975C0BE2732C7557F1B2A70796673C11DF4A;
