# ScriptExtensions-11.0.0.txt
# Date: 2018-02-04, 20:04:00 GMT
# © 2018 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
#   For documentation, see http://www.unicode.org/reports/tr44/
#
# The Script_Extensions property indicates which characters are commonly used
# with more than one script, but with a limited number of scripts.
# For each code point, there is one or more property values.  Each such value is a Script property value.
# For more information, see:
#   UAX #24, Unicode Script Property: http://www.unicode.org/reports/tr24/
#     Especially the sections:
#       http://www.unicode.org/reports/tr24/#Assignment_Script_Values
#       http://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
#
# Each Script_Extensions value in this file consists of a set
# of one or more abbreviated Script property values. The ordering of the
# values in that set is not material, but for stability in presentation
# it is given here as alphabetical.
#
# The Script_Extensions values are presented in sorted order in the file.
# They are sorted first by the number of Script property values in their sets,
# and then alphabetically by first differing Script property value.
#
# Following each distinct Script_Extensions value is the list of code
# points associated with that value, listed in code point order.
#
# All code points not explicitly listed for Script_Extensions
# have as their value the corresponding Script property value
#
# @missing: 0000..10FFFF; <script>

# ================================================

# Property:	Script_Extensions

# ================================================

# Script_Extensions=Beng

1CF7          ; Beng # Mc       VEDIC SIGN ATIKRAMA

# Total code points: 1

# ================================================

# Script_Extensions=Deva

1CD1          ; Deva # Mn       VEDIC TONE SHARA
1CD4          ; Deva # Mn       VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
1CDB          ; Deva # Mn       VEDIC TONE TRIPLE SVARITA
1CDE..1CDF    ; Deva # Mn   [2] VEDIC TONE TWO DOTS BELOW..VEDIC TONE THREE DOTS BELOW
1CE2..1CE8    ; Deva # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CE9          ; Deva # Lo       VEDIC SIGN ANUSVARA ANTARGOMUKHA
1CEB..1CEC    ; Deva # Lo   [2] VEDIC SIGN ANUSVARA VAMAGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
1CEE..1CF1    ; Deva # Lo   [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA

# Total code points: 19

# ================================================

# Script_Extensions=Dupl

1BCA0..1BCA3  ; Dupl # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP

# Total code points: 4

# ================================================

# Script_Extensions=Grek

0342          ; Grek # Mn       COMBINING GREEK PERISPOMENI
0345          ; Grek # Mn       COMBINING GREEK YPOGEGRAMMENI
1DC0..1DC1    ; Grek # Mn   [2] COMBINING DOTTED GRAVE ACCENT..COMBINING DOTTED ACUTE ACCENT

# Total code points: 4

# ================================================

# Script_Extensions=Hani

3006          ; Hani # Lo       IDEOGRAPHIC CLOSING MARK
303E..303F    ; Hani # So   [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
3190..3191    ; Hani # So   [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
3192..3195    ; Hani # No   [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
3196..319F    ; Hani # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
31C0..31E3    ; Hani # So  [36] CJK STROKE T..CJK STROKE Q
3220..3229    ; Hani # No  [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
322A..3247    ; Hani # So  [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
3280..3289    ; Hani # No  [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
328A..32B0    ; Hani # So  [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
32C0..32CB    ; Hani # So  [12] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
3358..3370    ; Hani # So  [25] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO..IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
337B..337F    ; Hani # So   [5] SQUARE ERA NAME HEISEI..SQUARE CORPORATION
33E0..33FE    ; Hani # So  [31] IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
1D360..1D371  ; Hani # No  [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
1F250..1F251  ; Hani # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT

# Total code points: 237

# ================================================

# Script_Extensions=Latn

0363..036F    ; Latn # Mn  [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X

# Total code points: 13

# ================================================

# Script_Extensions=Arab Copt

102E0         ; Arab Copt # Mn       COPTIC EPACT THOUSANDS MARK
102E1..102FB  ; Arab Copt # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED

# Total code points: 28

# ================================================

# Script_Extensions=Arab Rohg

06D4          ; Arab Rohg # Po       ARABIC FULL STOP

# Total code points: 1

# ================================================

# Script_Extensions=Arab Syrc

064B..0655    ; Arab Syrc # Mn  [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
0670          ; Arab Syrc # Mn       ARABIC LETTER SUPERSCRIPT ALEF

# Total code points: 12

# ================================================

# Script_Extensions=Arab Thaa

0660..0669    ; Arab Thaa # Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
FDF2          ; Arab Thaa # Lo       ARABIC LIGATURE ALLAH ISOLATED FORM
FDFD          ; Arab Thaa # So       ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM

# Total code points: 12

# ================================================

# Script_Extensions=Armn Geor

0589          ; Armn Geor # Po       ARMENIAN FULL STOP

# Total code points: 1

# ================================================

# Script_Extensions=Beng Deva

1CD5..1CD6    ; Beng Deva # Mn   [2] VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA..VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
1CD8          ; Beng Deva # Mn       VEDIC TONE CANDRA BELOW
1CE1          ; Beng Deva # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
1CEA          ; Beng Deva # Lo       VEDIC SIGN ANUSVARA BAHIRGOMUKHA
1CED          ; Beng Deva # Mn       VEDIC SIGN TIRYAK
1CF5..1CF6    ; Beng Deva # Lo   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
A8F1          ; Beng Deva # Mn       COMBINING DEVANAGARI SIGN AVAGRAHA

# Total code points: 9

# ================================================

# Script_Extensions=Bopo Hani

302A..302D    ; Bopo Hani # Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK

# Total code points: 4

# ================================================

# Script_Extensions=Bugi Java

A9CF          ; Bugi Java # Lm       JAVANESE PANGRANGKEP

# Total code points: 1

# ================================================

# Script_Extensions=Cprt Linb

10100..10102  ; Cprt Linb # Po   [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
10137..1013F  ; Cprt Linb # So   [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT

# Total code points: 12

# ================================================

# Script_Extensions=Cyrl Glag

0484          ; Cyrl Glag # Mn       COMBINING CYRILLIC PALATALIZATION
0487          ; Cyrl Glag # Mn       COMBINING CYRILLIC POKRYTIE
2E43          ; Cyrl Glag # Po       DASH WITH LEFT UPTURN
A66F          ; Cyrl Glag # Mn       COMBINING CYRILLIC VZMET

# Total code points: 4

# ================================================

# Script_Extensions=Cyrl Latn

0485..0486    ; Cyrl Latn # Mn   [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA

# Total code points: 2

# ================================================

# Script_Extensions=Cyrl Perm

0483          ; Cyrl Perm # Mn       COMBINING CYRILLIC TITLO

# Total code points: 1

# ================================================

# Script_Extensions=Deva Gran

1CD3          ; Deva Gran # Po       VEDIC SIGN NIHSHVASA
1CF2..1CF3    ; Deva Gran # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF8..1CF9    ; Deva Gran # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE

# Total code points: 5

# ================================================

# Script_Extensions=Deva Shrd

1CD7          ; Deva Shrd # Mn       VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
1CD9          ; Deva Shrd # Mn       VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
1CDC..1CDD    ; Deva Shrd # Mn   [2] VEDIC TONE KATHAKA ANUDATTA..VEDIC TONE DOT BELOW
1CE0          ; Deva Shrd # Mn       VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA

# Total code points: 5

# ================================================

# Script_Extensions=Deva Taml

A8F3          ; Deva Taml # Lo       DEVANAGARI SIGN CANDRABINDU VIRAMA

# Total code points: 1

# ================================================

# Script_Extensions=Geor Latn

10FB          ; Geor Latn # Po       GEORGIAN PARAGRAPH SEPARATOR

# Total code points: 1

# ================================================

# Script_Extensions=Gran Taml

0BE6..0BEF    ; Gran Taml # Nd  [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
0BF0..0BF2    ; Gran Taml # No   [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
0BF3          ; Gran Taml # So       TAMIL DAY SIGN
11301         ; Gran Taml # Mn       GRANTHA SIGN CANDRABINDU
11303         ; Gran Taml # Mc       GRANTHA SIGN VISARGA
1133B..1133C  ; Gran Taml # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA

# Total code points: 18

# ================================================

# Script_Extensions=Gujr Khoj

0AE6..0AEF    ; Gujr Khoj # Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Guru Mult

0A66..0A6F    ; Guru Mult # Nd  [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Hira Kana

3031..3035    ; Hira Kana # Lm   [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
3099..309A    ; Hira Kana # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
309B..309C    ; Hira Kana # Sk   [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
30A0          ; Hira Kana # Pd       KATAKANA-HIRAGANA DOUBLE HYPHEN
30FC          ; Hira Kana # Lm       KATAKANA-HIRAGANA PROLONGED SOUND MARK
FF70          ; Hira Kana # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
FF9E..FF9F    ; Hira Kana # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK

# Total code points: 14

# ================================================

# Script_Extensions=Mong Phag

1802..1803    ; Mong Phag # Po   [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
1805          ; Mong Phag # Po       MONGOLIAN FOUR DOTS

# Total code points: 3

# ================================================

# Script_Extensions=Arab Syrc Thaa

061C          ; Arab Syrc Thaa # Cf       ARABIC LETTER MARK

# Total code points: 1

# ================================================

# Script_Extensions=Beng Cakm Sylo

09E6..09EF    ; Beng Cakm Sylo # Nd  [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Cakm Mymr Tale

1040..1049    ; Cakm Mymr Tale # Nd  [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Cprt Lina Linb

10107..10133  ; Cprt Lina Linb # No  [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND

# Total code points: 45

# ================================================

# Script_Extensions=Deva Gran Knda

1CF4          ; Deva Gran Knda # Mn       VEDIC TONE CANDRA ABOVE

# Total code points: 1

# ================================================

# Script_Extensions=Deva Gran Latn

20F0          ; Deva Gran Latn # Mn       COMBINING ASTERISK ABOVE

# Total code points: 1

# ================================================

# Script_Extensions=Hani Hira Kana

303C          ; Hani Hira Kana # Lo       MASU MARK
303D          ; Hani Hira Kana # Po       PART ALTERNATION MARK

# Total code points: 2

# ================================================

# Script_Extensions=Kali Latn Mymr

A92E          ; Kali Latn Mymr # Po       KAYAH LI SIGN CWI

# Total code points: 1

# ================================================

# Script_Extensions=Arab Rohg Syrc Thaa

060C          ; Arab Rohg Syrc Thaa # Po       ARABIC COMMA
061B          ; Arab Rohg Syrc Thaa # Po       ARABIC SEMICOLON
061F          ; Arab Rohg Syrc Thaa # Po       ARABIC QUESTION MARK

# Total code points: 3

# ================================================

# Script_Extensions=Beng Deva Gran Knda

1CD0          ; Beng Deva Gran Knda # Mn       VEDIC TONE KARSHANA
1CD2          ; Beng Deva Gran Knda # Mn       VEDIC TONE PRENKHA

# Total code points: 2

# ================================================

# Script_Extensions=Buhd Hano Tagb Tglg

1735..1736    ; Buhd Hano Tagb Tglg # Po   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION

# Total code points: 2

# ================================================

# Script_Extensions=Deva Dogr Kthi Mahj

0966..096F    ; Deva Dogr Kthi Mahj # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE

# Total code points: 10

# ================================================

# Script_Extensions=Bopo Hang Hani Hira Kana

3003          ; Bopo Hang Hani Hira Kana # Po       DITTO MARK
3013          ; Bopo Hang Hani Hira Kana # So       GETA MARK
301C          ; Bopo Hang Hani Hira Kana # Pd       WAVE DASH
301D          ; Bopo Hang Hani Hira Kana # Ps       REVERSED DOUBLE PRIME QUOTATION MARK
301E..301F    ; Bopo Hang Hani Hira Kana # Pe   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
3030          ; Bopo Hang Hani Hira Kana # Pd       WAVY DASH
3037          ; Bopo Hang Hani Hira Kana # So       IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
FE45..FE46    ; Bopo Hang Hani Hira Kana # Po   [2] SESAME DOT..WHITE SESAME DOT

# Total code points: 10

# ================================================

# Script_Extensions=Bopo Hang Hani Hira Kana Yiii

3001..3002    ; Bopo Hang Hani Hira Kana Yiii # Po   [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
3008          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT ANGLE BRACKET
3009          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT ANGLE BRACKET
300A          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT DOUBLE ANGLE BRACKET
300B          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT DOUBLE ANGLE BRACKET
300C          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT CORNER BRACKET
300D          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT CORNER BRACKET
300E          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT WHITE CORNER BRACKET
300F          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT WHITE CORNER BRACKET
3010          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT BLACK LENTICULAR BRACKET
3011          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT BLACK LENTICULAR BRACKET
3014          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT TORTOISE SHELL BRACKET
3015          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT TORTOISE SHELL BRACKET
3016          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT WHITE LENTICULAR BRACKET
3017          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT WHITE LENTICULAR BRACKET
3018          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT WHITE TORTOISE SHELL BRACKET
3019          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT WHITE TORTOISE SHELL BRACKET
301A          ; Bopo Hang Hani Hira Kana Yiii # Ps       LEFT WHITE SQUARE BRACKET
301B          ; Bopo Hang Hani Hira Kana Yiii # Pe       RIGHT WHITE SQUARE BRACKET
30FB          ; Bopo Hang Hani Hira Kana Yiii # Po       KATAKANA MIDDLE DOT
FF61          ; Bopo Hang Hani Hira Kana Yiii # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
FF62          ; Bopo Hang Hani Hira Kana Yiii # Ps       HALFWIDTH LEFT CORNER BRACKET
FF63          ; Bopo Hang Hani Hira Kana Yiii # Pe       HALFWIDTH RIGHT CORNER BRACKET
FF64..FF65    ; Bopo Hang Hani Hira Kana Yiii # Po   [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT

# Total code points: 26

# ================================================

# Script_Extensions=Deva Knda Mlym Orya Taml Telu

1CDA          ; Deva Knda Mlym Orya Taml Telu # Mn       VEDIC TONE DOUBLE SVARITA

# Total code points: 1

# ================================================

# Script_Extensions=Adlm Arab Mand Mani Phlp Rohg Sogd Syrc

0640          ; Adlm Arab Mand Mani Phlp Rohg Sogd Syrc # Lm       ARABIC TATWEEL

# Total code points: 1

# ================================================

# Script_Extensions=Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh

A836..A837    ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So   [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
A838          ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # Sc       NORTH INDIC RUPEE MARK
A839          ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So       NORTH INDIC QUANTITY MARK

# Total code points: 4

# ================================================

# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu Tirh

0952          ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu Tirh # Mn       DEVANAGARI STRESS SIGN ANUDATTA

# Total code points: 1

# ================================================

# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Sind Takr Tirh

A833..A835    ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Sind Takr Tirh # No   [3] NORTH INDIC FRACTION ONE SIXTEENTH..NORTH INDIC FRACTION THREE SIXTEENTHS

# Total code points: 3

# ================================================

# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu Tirh

0951          ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu Tirh # Mn       DEVANAGARI STRESS SIGN UDATTA

# Total code points: 1

# ================================================

# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Sind Takr Tirh

A830..A832    ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Sind Takr Tirh # No   [3] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE QUARTERS

# Total code points: 3

# ================================================

# Script_Extensions=Beng Deva Dogr Gong Gran Gujr Guru Knda Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh

0964          ; Beng Deva Dogr Gong Gran Gujr Guru Knda Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po       DEVANAGARI DANDA

# Total code points: 1

# ================================================

# Script_Extensions=Beng Deva Dogr Gong Gran Gujr Guru Knda Limb Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh

0965          ; Beng Deva Dogr Gong Gran Gujr Guru Knda Limb Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po       DEVANAGARI DOUBLE DANDA

# Total code points: 1

# EOF
