Passed
Push — master ( 10c435...dea9a9 )
by Alec
01:58
created

wcswidth()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 2
dl 0
loc 6
ccs 3
cts 3
cp 1
crap 2
rs 10
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
3
namespace AlecRabbit\Helpers;
4
5
// @codeCoverageIgnoreStart
6
7
// @link https://github.com/jquast/wcwidth
8
// Zero_Width table. Created by setup.py.
9
// Generated: 2019-09-18T10:00:11.143684
10
// Source: DerivedGeneralCategory-12.1.0.txt
11
// Date:  2019-03-10, 10:53:08 GMT
12
13
define(
14
    __NAMESPACE__ . '\\' . 'ZERO_WIDTH',
15
    [
16
        [0x0300, 0x036f,],  # Combining Grave Accent  ..Combining Latin Small Le
17
        [0x0483, 0x0489,],  # Combining Cyrillic Titlo..Combining Cyrillic Milli
18
        [0x0591, 0x05bd,],  # Hebrew Accent Etnahta   ..Hebrew Point Meteg
19
        [0x05bf, 0x05bf,],  # Hebrew Point Rafe       ..Hebrew Point Rafe
20
        [0x05c1, 0x05c2,],  # Hebrew Point Shin Dot   ..Hebrew Point Sin Dot
21
        [0x05c4, 0x05c5,],  # Hebrew Mark Upper Dot   ..Hebrew Mark Lower Dot
22
        [0x05c7, 0x05c7,],  # Hebrew Point Qamats Qata..Hebrew Point Qamats Qata
23
        [0x0610, 0x061a,],  # Arabic Sign Sallallahou ..Arabic Small Kasra
24
        [0x064b, 0x065f,],  # Arabic Fathatan         ..Arabic Wavy Hamza Below
25
        [0x0670, 0x0670,],  # Arabic Letter Superscrip..Arabic Letter Superscrip
26
        [0x06d6, 0x06dc,],  # Arabic Small High Ligatu..Arabic Small High Seen
27
        [0x06df, 0x06e4,],  # Arabic Small High Rounde..Arabic Small High Madda
28
        [0x06e7, 0x06e8,],  # Arabic Small High Yeh   ..Arabic Small High Noon
29
        [0x06ea, 0x06ed,],  # Arabic Empty Centre Low ..Arabic Small Low Meem
30
        [0x0711, 0x0711,],  # Syriac Letter Superscrip..Syriac Letter Superscrip
31
        [0x0730, 0x074a,],  # Syriac Pthaha Above     ..Syriac Barrekh
32
        [0x07a6, 0x07b0,],  # Thaana Abafili          ..Thaana Sukun
33
        [0x07eb, 0x07f3,],  # Nko Combining Short High..Nko Combining Double Dot
34
        [0x07fd, 0x07fd,],  # (nil)                   ..
35
        [0x0816, 0x0819,],  # Samaritan Mark In       ..Samaritan Mark Dagesh
36
        [0x081b, 0x0823,],  # Samaritan Mark Epentheti..Samaritan Vowel Sign A
37
        [0x0825, 0x0827,],  # Samaritan Vowel Sign Sho..Samaritan Vowel Sign U
38
        [0x0829, 0x082d,],  # Samaritan Vowel Sign Lon..Samaritan Mark Nequdaa
39
        [0x0859, 0x085b,],  # Mandaic Affrication Mark..Mandaic Gemination Mark
40
        [0x08d3, 0x08e1,],  # (nil)                   ..Arabic Small High Sign S
41
        [0x08e3, 0x0902,],  # Arabic Turned Damma Belo..Devanagari Sign Anusvara
42
        [0x093a, 0x093a,],  # Devanagari Vowel Sign Oe..Devanagari Vowel Sign Oe
43
        [0x093c, 0x093c,],  # Devanagari Sign Nukta   ..Devanagari Sign Nukta
44
        [0x0941, 0x0948,],  # Devanagari Vowel Sign U ..Devanagari Vowel Sign Ai
45
        [0x094d, 0x094d,],  # Devanagari Sign Virama  ..Devanagari Sign Virama
46
        [0x0951, 0x0957,],  # Devanagari Stress Sign U..Devanagari Vowel Sign Uu
47
        [0x0962, 0x0963,],  # Devanagari Vowel Sign Vo..Devanagari Vowel Sign Vo
48
        [0x0981, 0x0981,],  # Bengali Sign Candrabindu..Bengali Sign Candrabindu
49
        [0x09bc, 0x09bc,],  # Bengali Sign Nukta      ..Bengali Sign Nukta
50
        [0x09c1, 0x09c4,],  # Bengali Vowel Sign U    ..Bengali Vowel Sign Vocal
51
        [0x09cd, 0x09cd,],  # Bengali Sign Virama     ..Bengali Sign Virama
52
        [0x09e2, 0x09e3,],  # Bengali Vowel Sign Vocal..Bengali Vowel Sign Vocal
53
        [0x09fe, 0x09fe,],  # (nil)                   ..
54
        [0x0a01, 0x0a02,],  # Gurmukhi Sign Adak Bindi..Gurmukhi Sign Bindi
55
        [0x0a3c, 0x0a3c,],  # Gurmukhi Sign Nukta     ..Gurmukhi Sign Nukta
56
        [0x0a41, 0x0a42,],  # Gurmukhi Vowel Sign U   ..Gurmukhi Vowel Sign Uu
57
        [0x0a47, 0x0a48,],  # Gurmukhi Vowel Sign Ee  ..Gurmukhi Vowel Sign Ai
58
        [0x0a4b, 0x0a4d,],  # Gurmukhi Vowel Sign Oo  ..Gurmukhi Sign Virama
59
        [0x0a51, 0x0a51,],  # Gurmukhi Sign Udaat     ..Gurmukhi Sign Udaat
60
        [0x0a70, 0x0a71,],  # Gurmukhi Tippi          ..Gurmukhi Addak
61
        [0x0a75, 0x0a75,],  # Gurmukhi Sign Yakash    ..Gurmukhi Sign Yakash
62
        [0x0a81, 0x0a82,],  # Gujarati Sign Candrabind..Gujarati Sign Anusvara
63
        [0x0abc, 0x0abc,],  # Gujarati Sign Nukta     ..Gujarati Sign Nukta
64
        [0x0ac1, 0x0ac5,],  # Gujarati Vowel Sign U   ..Gujarati Vowel Sign Cand
65
        [0x0ac7, 0x0ac8,],  # Gujarati Vowel Sign E   ..Gujarati Vowel Sign Ai
66
        [0x0acd, 0x0acd,],  # Gujarati Sign Virama    ..Gujarati Sign Virama
67
        [0x0ae2, 0x0ae3,],  # Gujarati Vowel Sign Voca..Gujarati Vowel Sign Voca
68
        [0x0afa, 0x0aff,],  # (nil)                   ..
69
        [0x0b01, 0x0b01,],  # Oriya Sign Candrabindu  ..Oriya Sign Candrabindu
70
        [0x0b3c, 0x0b3c,],  # Oriya Sign Nukta        ..Oriya Sign Nukta
71
        [0x0b3f, 0x0b3f,],  # Oriya Vowel Sign I      ..Oriya Vowel Sign I
72
        [0x0b41, 0x0b44,],  # Oriya Vowel Sign U      ..Oriya Vowel Sign Vocalic
73
        [0x0b4d, 0x0b4d,],  # Oriya Sign Virama       ..Oriya Sign Virama
74
        [0x0b56, 0x0b56,],  # Oriya Ai Length Mark    ..Oriya Ai Length Mark
75
        [0x0b62, 0x0b63,],  # Oriya Vowel Sign Vocalic..Oriya Vowel Sign Vocalic
76
        [0x0b82, 0x0b82,],  # Tamil Sign Anusvara     ..Tamil Sign Anusvara
77
        [0x0bc0, 0x0bc0,],  # Tamil Vowel Sign Ii     ..Tamil Vowel Sign Ii
78
        [0x0bcd, 0x0bcd,],  # Tamil Sign Virama       ..Tamil Sign Virama
79
        [0x0c00, 0x0c00,],  # Telugu Sign Combining Ca..Telugu Sign Combining Ca
80
        [0x0c04, 0x0c04,],  # (nil)                   ..
81
        [0x0c3e, 0x0c40,],  # Telugu Vowel Sign Aa    ..Telugu Vowel Sign Ii
82
        [0x0c46, 0x0c48,],  # Telugu Vowel Sign E     ..Telugu Vowel Sign Ai
83
        [0x0c4a, 0x0c4d,],  # Telugu Vowel Sign O     ..Telugu Sign Virama
84
        [0x0c55, 0x0c56,],  # Telugu Length Mark      ..Telugu Ai Length Mark
85
        [0x0c62, 0x0c63,],  # Telugu Vowel Sign Vocali..Telugu Vowel Sign Vocali
86
        [0x0c81, 0x0c81,],  # Kannada Sign Candrabindu..Kannada Sign Candrabindu
87
        [0x0cbc, 0x0cbc,],  # Kannada Sign Nukta      ..Kannada Sign Nukta
88
        [0x0cbf, 0x0cbf,],  # Kannada Vowel Sign I    ..Kannada Vowel Sign I
89
        [0x0cc6, 0x0cc6,],  # Kannada Vowel Sign E    ..Kannada Vowel Sign E
90
        [0x0ccc, 0x0ccd,],  # Kannada Vowel Sign Au   ..Kannada Sign Virama
91
        [0x0ce2, 0x0ce3,],  # Kannada Vowel Sign Vocal..Kannada Vowel Sign Vocal
92
        [0x0d00, 0x0d01,],  # (nil)                   ..Malayalam Sign Candrabin
93
        [0x0d3b, 0x0d3c,],  # (nil)                   ..
94
        [0x0d41, 0x0d44,],  # Malayalam Vowel Sign U  ..Malayalam Vowel Sign Voc
95
        [0x0d4d, 0x0d4d,],  # Malayalam Sign Virama   ..Malayalam Sign Virama
96
        [0x0d62, 0x0d63,],  # Malayalam Vowel Sign Voc..Malayalam Vowel Sign Voc
97
        [0x0dca, 0x0dca,],  # Sinhala Sign Al-lakuna  ..Sinhala Sign Al-lakuna
98
        [0x0dd2, 0x0dd4,],  # Sinhala Vowel Sign Ketti..Sinhala Vowel Sign Ketti
99
        [0x0dd6, 0x0dd6,],  # Sinhala Vowel Sign Diga ..Sinhala Vowel Sign Diga
100
        [0x0e31, 0x0e31,],  # Thai Character Mai Han-a..Thai Character Mai Han-a
101
        [0x0e34, 0x0e3a,],  # Thai Character Sara I   ..Thai Character Phinthu
102
        [0x0e47, 0x0e4e,],  # Thai Character Maitaikhu..Thai Character Yamakkan
103
        [0x0eb1, 0x0eb1,],  # Lao Vowel Sign Mai Kan  ..Lao Vowel Sign Mai Kan
104
        [0x0eb4, 0x0ebc,],  # Lao Vowel Sign I        ..Lao Semivowel Sign Lo
105
        [0x0ec8, 0x0ecd,],  # Lao Tone Mai Ek         ..Lao Niggahita
106
        [0x0f18, 0x0f19,],  # Tibetan Astrological Sig..Tibetan Astrological Sig
107
        [0x0f35, 0x0f35,],  # Tibetan Mark Ngas Bzung ..Tibetan Mark Ngas Bzung
108
        [0x0f37, 0x0f37,],  # Tibetan Mark Ngas Bzung ..Tibetan Mark Ngas Bzung
109
        [0x0f39, 0x0f39,],  # Tibetan Mark Tsa -phru  ..Tibetan Mark Tsa -phru
110
        [0x0f71, 0x0f7e,],  # Tibetan Vowel Sign Aa   ..Tibetan Sign Rjes Su Nga
111
        [0x0f80, 0x0f84,],  # Tibetan Vowel Sign Rever..Tibetan Mark Halanta
112
        [0x0f86, 0x0f87,],  # Tibetan Sign Lci Rtags  ..Tibetan Sign Yang Rtags
113
        [0x0f8d, 0x0f97,],  # Tibetan Subjoined Sign L..Tibetan Subjoined Letter
114
        [0x0f99, 0x0fbc,],  # Tibetan Subjoined Letter..Tibetan Subjoined Letter
115
        [0x0fc6, 0x0fc6,],  # Tibetan Symbol Padma Gda..Tibetan Symbol Padma Gda
116
        [0x102d, 0x1030,],  # Myanmar Vowel Sign I    ..Myanmar Vowel Sign Uu
117
        [0x1032, 0x1037,],  # Myanmar Vowel Sign Ai   ..Myanmar Sign Dot Below
118
        [0x1039, 0x103a,],  # Myanmar Sign Virama     ..Myanmar Sign Asat
119
        [0x103d, 0x103e,],  # Myanmar Consonant Sign M..Myanmar Consonant Sign M
120
        [0x1058, 0x1059,],  # Myanmar Vowel Sign Vocal..Myanmar Vowel Sign Vocal
121
        [0x105e, 0x1060,],  # Myanmar Consonant Sign M..Myanmar Consonant Sign M
122
        [0x1071, 0x1074,],  # Myanmar Vowel Sign Geba ..Myanmar Vowel Sign Kayah
123
        [0x1082, 0x1082,],  # Myanmar Consonant Sign S..Myanmar Consonant Sign S
124
        [0x1085, 0x1086,],  # Myanmar Vowel Sign Shan ..Myanmar Vowel Sign Shan
125
        [0x108d, 0x108d,],  # Myanmar Sign Shan Counci..Myanmar Sign Shan Counci
126
        [0x109d, 0x109d,],  # Myanmar Vowel Sign Aiton..Myanmar Vowel Sign Aiton
127
        [0x135d, 0x135f,],  # Ethiopic Combining Gemin..Ethiopic Combining Gemin
128
        [0x1712, 0x1714,],  # Tagalog Vowel Sign I    ..Tagalog Sign Virama
129
        [0x1732, 0x1734,],  # Hanunoo Vowel Sign I    ..Hanunoo Sign Pamudpod
130
        [0x1752, 0x1753,],  # Buhid Vowel Sign I      ..Buhid Vowel Sign U
131
        [0x1772, 0x1773,],  # Tagbanwa Vowel Sign I   ..Tagbanwa Vowel Sign U
132
        [0x17b4, 0x17b5,],  # Khmer Vowel Inherent Aq ..Khmer Vowel Inherent Aa
133
        [0x17b7, 0x17bd,],  # Khmer Vowel Sign I      ..Khmer Vowel Sign Ua
134
        [0x17c6, 0x17c6,],  # Khmer Sign Nikahit      ..Khmer Sign Nikahit
135
        [0x17c9, 0x17d3,],  # Khmer Sign Muusikatoan  ..Khmer Sign Bathamasat
136
        [0x17dd, 0x17dd,],  # Khmer Sign Atthacan     ..Khmer Sign Atthacan
137
        [0x180b, 0x180d,],  # Mongolian Free Variation..Mongolian Free Variation
138
        [0x1885, 0x1886,],  # Mongolian Letter Ali Gal..Mongolian Letter Ali Gal
139
        [0x18a9, 0x18a9,],  # Mongolian Letter Ali Gal..Mongolian Letter Ali Gal
140
        [0x1920, 0x1922,],  # Limbu Vowel Sign A      ..Limbu Vowel Sign U
141
        [0x1927, 0x1928,],  # Limbu Vowel Sign E      ..Limbu Vowel Sign O
142
        [0x1932, 0x1932,],  # Limbu Small Letter Anusv..Limbu Small Letter Anusv
143
        [0x1939, 0x193b,],  # Limbu Sign Mukphreng    ..Limbu Sign Sa-i
144
        [0x1a17, 0x1a18,],  # Buginese Vowel Sign I   ..Buginese Vowel Sign U
145
        [0x1a1b, 0x1a1b,],  # Buginese Vowel Sign Ae  ..Buginese Vowel Sign Ae
146
        [0x1a56, 0x1a56,],  # Tai Tham Consonant Sign ..Tai Tham Consonant Sign
147
        [0x1a58, 0x1a5e,],  # Tai Tham Sign Mai Kang L..Tai Tham Consonant Sign
148
        [0x1a60, 0x1a60,],  # Tai Tham Sign Sakot     ..Tai Tham Sign Sakot
149
        [0x1a62, 0x1a62,],  # Tai Tham Vowel Sign Mai ..Tai Tham Vowel Sign Mai
150
        [0x1a65, 0x1a6c,],  # Tai Tham Vowel Sign I   ..Tai Tham Vowel Sign Oa B
151
        [0x1a73, 0x1a7c,],  # Tai Tham Vowel Sign Oa A..Tai Tham Sign Khuen-lue
152
        [0x1a7f, 0x1a7f,],  # Tai Tham Combining Crypt..Tai Tham Combining Crypt
153
        [0x1ab0, 0x1abe,],  # Combining Doubled Circum..Combining Parentheses Ov
154
        [0x1b00, 0x1b03,],  # Balinese Sign Ulu Ricem ..Balinese Sign Surang
155
        [0x1b34, 0x1b34,],  # Balinese Sign Rerekan   ..Balinese Sign Rerekan
156
        [0x1b36, 0x1b3a,],  # Balinese Vowel Sign Ulu ..Balinese Vowel Sign Ra R
157
        [0x1b3c, 0x1b3c,],  # Balinese Vowel Sign La L..Balinese Vowel Sign La L
158
        [0x1b42, 0x1b42,],  # Balinese Vowel Sign Pepe..Balinese Vowel Sign Pepe
159
        [0x1b6b, 0x1b73,],  # Balinese Musical Symbol ..Balinese Musical Symbol
160
        [0x1b80, 0x1b81,],  # Sundanese Sign Panyecek ..Sundanese Sign Panglayar
161
        [0x1ba2, 0x1ba5,],  # Sundanese Consonant Sign..Sundanese Vowel Sign Pan
162
        [0x1ba8, 0x1ba9,],  # Sundanese Vowel Sign Pam..Sundanese Vowel Sign Pan
163
        [0x1bab, 0x1bad,],  # Sundanese Sign Virama   ..Sundanese Consonant Sign
164
        [0x1be6, 0x1be6,],  # Batak Sign Tompi        ..Batak Sign Tompi
165
        [0x1be8, 0x1be9,],  # Batak Vowel Sign Pakpak ..Batak Vowel Sign Ee
166
        [0x1bed, 0x1bed,],  # Batak Vowel Sign Karo O ..Batak Vowel Sign Karo O
167
        [0x1bef, 0x1bf1,],  # Batak Vowel Sign U For S..Batak Consonant Sign H
168
        [0x1c2c, 0x1c33,],  # Lepcha Vowel Sign E     ..Lepcha Consonant Sign T
169
        [0x1c36, 0x1c37,],  # Lepcha Sign Ran         ..Lepcha Sign Nukta
170
        [0x1cd0, 0x1cd2,],  # Vedic Tone Karshana     ..Vedic Tone Prenkha
171
        [0x1cd4, 0x1ce0,],  # Vedic Sign Yajurvedic Mi..Vedic Tone Rigvedic Kash
172
        [0x1ce2, 0x1ce8,],  # Vedic Sign Visarga Svari..Vedic Sign Visarga Anuda
173
        [0x1ced, 0x1ced,],  # Vedic Sign Tiryak       ..Vedic Sign Tiryak
174
        [0x1cf4, 0x1cf4,],  # Vedic Tone Candra Above ..Vedic Tone Candra Above
175
        [0x1cf8, 0x1cf9,],  # Vedic Tone Ring Above   ..Vedic Tone Double Ring A
176
        [0x1dc0, 0x1df9,],  # Combining Dotted Grave A..
177
        [0x1dfb, 0x1dff,],  # Combining Deletion Mark ..Combining Right Arrowhea
178
        [0x20d0, 0x20f0,],  # Combining Left Harpoon A..Combining Asterisk Above
179
        [0x2cef, 0x2cf1,],  # Coptic Combining Ni Abov..Coptic Combining Spiritu
180
        [0x2d7f, 0x2d7f,],  # Tifinagh Consonant Joine..Tifinagh Consonant Joine
181
        [0x2de0, 0x2dff,],  # Combining Cyrillic Lette..Combining Cyrillic Lette
182
        [0x302a, 0x302d,],  # Ideographic Level Tone M..Ideographic Entering Ton
183
        [0x3099, 0x309a,],  # Combining Katakana-hirag..Combining Katakana-hirag
184
        [0xa66f, 0xa672,],  # Combining Cyrillic Vzmet..Combining Cyrillic Thous
185
        [0xa674, 0xa67d,],  # Combining Cyrillic Lette..Combining Cyrillic Payer
186
        [0xa69e, 0xa69f,],  # Combining Cyrillic Lette..Combining Cyrillic Lette
187
        [0xa6f0, 0xa6f1,],  # Bamum Combining Mark Koq..Bamum Combining Mark Tuk
188
        [0xa802, 0xa802,],  # Syloti Nagri Sign Dvisva..Syloti Nagri Sign Dvisva
189
        [0xa806, 0xa806,],  # Syloti Nagri Sign Hasant..Syloti Nagri Sign Hasant
190
        [0xa80b, 0xa80b,],  # Syloti Nagri Sign Anusva..Syloti Nagri Sign Anusva
191
        [0xa825, 0xa826,],  # Syloti Nagri Vowel Sign ..Syloti Nagri Vowel Sign
192
        [0xa8c4, 0xa8c5,],  # Saurashtra Sign Virama  ..Saurashtra Sign Candrabi
193
        [0xa8e0, 0xa8f1,],  # Combining Devanagari Dig..Combining Devanagari Sig
194
        [0xa8ff, 0xa8ff,],  # (nil)                   ..
195
        [0xa926, 0xa92d,],  # Kayah Li Vowel Ue       ..Kayah Li Tone Calya Plop
196
        [0xa947, 0xa951,],  # Rejang Vowel Sign I     ..Rejang Consonant Sign R
197
        [0xa980, 0xa982,],  # Javanese Sign Panyangga ..Javanese Sign Layar
198
        [0xa9b3, 0xa9b3,],  # Javanese Sign Cecak Telu..Javanese Sign Cecak Telu
199
        [0xa9b6, 0xa9b9,],  # Javanese Vowel Sign Wulu..Javanese Vowel Sign Suku
200
        [0xa9bc, 0xa9bd,],  # Javanese Vowel Sign Pepe..Javanese Consonant Sign
201
        [0xa9e5, 0xa9e5,],  # Myanmar Sign Shan Saw   ..Myanmar Sign Shan Saw
202
        [0xaa29, 0xaa2e,],  # Cham Vowel Sign Aa      ..Cham Vowel Sign Oe
203
        [0xaa31, 0xaa32,],  # Cham Vowel Sign Au      ..Cham Vowel Sign Ue
204
        [0xaa35, 0xaa36,],  # Cham Consonant Sign La  ..Cham Consonant Sign Wa
205
        [0xaa43, 0xaa43,],  # Cham Consonant Sign Fina..Cham Consonant Sign Fina
206
        [0xaa4c, 0xaa4c,],  # Cham Consonant Sign Fina..Cham Consonant Sign Fina
207
        [0xaa7c, 0xaa7c,],  # Myanmar Sign Tai Laing T..Myanmar Sign Tai Laing T
208
        [0xaab0, 0xaab0,],  # Tai Viet Mai Kang       ..Tai Viet Mai Kang
209
        [0xaab2, 0xaab4,],  # Tai Viet Vowel I        ..Tai Viet Vowel U
210
        [0xaab7, 0xaab8,],  # Tai Viet Mai Khit       ..Tai Viet Vowel Ia
211
        [0xaabe, 0xaabf,],  # Tai Viet Vowel Am       ..Tai Viet Tone Mai Ek
212
        [0xaac1, 0xaac1,],  # Tai Viet Tone Mai Tho   ..Tai Viet Tone Mai Tho
213
        [0xaaec, 0xaaed,],  # Meetei Mayek Vowel Sign ..Meetei Mayek Vowel Sign
214
        [0xaaf6, 0xaaf6,],  # Meetei Mayek Virama     ..Meetei Mayek Virama
215
        [0xabe5, 0xabe5,],  # Meetei Mayek Vowel Sign ..Meetei Mayek Vowel Sign
216
        [0xabe8, 0xabe8,],  # Meetei Mayek Vowel Sign ..Meetei Mayek Vowel Sign
217
        [0xabed, 0xabed,],  # Meetei Mayek Apun Iyek  ..Meetei Mayek Apun Iyek
218
        [0xfb1e, 0xfb1e,],  # Hebrew Point Judeo-spani..Hebrew Point Judeo-spani
219
        [0xfe00, 0xfe0f,],  # Variation Selector-1    ..Variation Selector-16
220
        [0xfe20, 0xfe2f,],  # Combining Ligature Left ..Combining Cyrillic Titlo
221
        [0x101fd, 0x101fd,],  # Phaistos Disc Sign Combi..Phaistos Disc Sign Combi
222
        [0x102e0, 0x102e0,],  # Coptic Epact Thousands M..Coptic Epact Thousands M
223
        [0x10376, 0x1037a,],  # Combining Old Permic Let..Combining Old Permic Let
224
        [0x10a01, 0x10a03,],  # Kharoshthi Vowel Sign I ..Kharoshthi Vowel Sign Vo
225
        [0x10a05, 0x10a06,],  # Kharoshthi Vowel Sign E ..Kharoshthi Vowel Sign O
226
        [0x10a0c, 0x10a0f,],  # Kharoshthi Vowel Length ..Kharoshthi Sign Visarga
227
        [0x10a38, 0x10a3a,],  # Kharoshthi Sign Bar Abov..Kharoshthi Sign Dot Belo
228
        [0x10a3f, 0x10a3f,],  # Kharoshthi Virama       ..Kharoshthi Virama
229
        [0x10ae5, 0x10ae6,],  # Manichaean Abbreviation ..Manichaean Abbreviation
230
        [0x10d24, 0x10d27,],  # (nil)                   ..
231
        [0x10f46, 0x10f50,],  # (nil)                   ..
232
        [0x11001, 0x11001,],  # Brahmi Sign Anusvara    ..Brahmi Sign Anusvara
233
        [0x11038, 0x11046,],  # Brahmi Vowel Sign Aa    ..Brahmi Virama
234
        [0x1107f, 0x11081,],  # Brahmi Number Joiner    ..Kaithi Sign Anusvara
235
        [0x110b3, 0x110b6,],  # Kaithi Vowel Sign U     ..Kaithi Vowel Sign Ai
236
        [0x110b9, 0x110ba,],  # Kaithi Sign Virama      ..Kaithi Sign Nukta
237
        [0x11100, 0x11102,],  # Chakma Sign Candrabindu ..Chakma Sign Visarga
238
        [0x11127, 0x1112b,],  # Chakma Vowel Sign A     ..Chakma Vowel Sign Uu
239
        [0x1112d, 0x11134,],  # Chakma Vowel Sign Ai    ..Chakma Maayyaa
240
        [0x11173, 0x11173,],  # Mahajani Sign Nukta     ..Mahajani Sign Nukta
241
        [0x11180, 0x11181,],  # Sharada Sign Candrabindu..Sharada Sign Anusvara
242
        [0x111b6, 0x111be,],  # Sharada Vowel Sign U    ..Sharada Vowel Sign O
243
        [0x111c9, 0x111cc,],  # Sharada Sandhi Mark     ..Sharada Extra Short Vowe
244
        [0x1122f, 0x11231,],  # Khojki Vowel Sign U     ..Khojki Vowel Sign Ai
245
        [0x11234, 0x11234,],  # Khojki Sign Anusvara    ..Khojki Sign Anusvara
246
        [0x11236, 0x11237,],  # Khojki Sign Nukta       ..Khojki Sign Shadda
247
        [0x1123e, 0x1123e,],  # Khojki Sign Sukun       ..Khojki Sign Sukun
248
        [0x112df, 0x112df,],  # Khudawadi Sign Anusvara ..Khudawadi Sign Anusvara
249
        [0x112e3, 0x112ea,],  # Khudawadi Vowel Sign U  ..Khudawadi Sign Virama
250
        [0x11300, 0x11301,],  # Grantha Sign Combining A..Grantha Sign Candrabindu
251
        [0x1133b, 0x1133c,],  # (nil)                   ..Grantha Sign Nukta
252
        [0x11340, 0x11340,],  # Grantha Vowel Sign Ii   ..Grantha Vowel Sign Ii
253
        [0x11366, 0x1136c,],  # Combining Grantha Digit ..Combining Grantha Digit
254
        [0x11370, 0x11374,],  # Combining Grantha Letter..Combining Grantha Letter
255
        [0x11438, 0x1143f,],  # Newa Vowel Sign U       ..Newa Vowel Sign Ai
256
        [0x11442, 0x11444,],  # Newa Sign Virama        ..Newa Sign Anusvara
257
        [0x11446, 0x11446,],  # Newa Sign Nukta         ..Newa Sign Nukta
258
        [0x1145e, 0x1145e,],  # (nil)                   ..
259
        [0x114b3, 0x114b8,],  # Tirhuta Vowel Sign U    ..Tirhuta Vowel Sign Vocal
260
        [0x114ba, 0x114ba,],  # Tirhuta Vowel Sign Short..Tirhuta Vowel Sign Short
261
        [0x114bf, 0x114c0,],  # Tirhuta Sign Candrabindu..Tirhuta Sign Anusvara
262
        [0x114c2, 0x114c3,],  # Tirhuta Sign Virama     ..Tirhuta Sign Nukta
263
        [0x115b2, 0x115b5,],  # Siddham Vowel Sign U    ..Siddham Vowel Sign Vocal
264
        [0x115bc, 0x115bd,],  # Siddham Sign Candrabindu..Siddham Sign Anusvara
265
        [0x115bf, 0x115c0,],  # Siddham Sign Virama     ..Siddham Sign Nukta
266
        [0x115dc, 0x115dd,],  # Siddham Vowel Sign Alter..Siddham Vowel Sign Alter
267
        [0x11633, 0x1163a,],  # Modi Vowel Sign U       ..Modi Vowel Sign Ai
268
        [0x1163d, 0x1163d,],  # Modi Sign Anusvara      ..Modi Sign Anusvara
269
        [0x1163f, 0x11640,],  # Modi Sign Virama        ..Modi Sign Ardhacandra
270
        [0x116ab, 0x116ab,],  # Takri Sign Anusvara     ..Takri Sign Anusvara
271
        [0x116ad, 0x116ad,],  # Takri Vowel Sign Aa     ..Takri Vowel Sign Aa
272
        [0x116b0, 0x116b5,],  # Takri Vowel Sign U      ..Takri Vowel Sign Au
273
        [0x116b7, 0x116b7,],  # Takri Sign Nukta        ..Takri Sign Nukta
274
        [0x1171d, 0x1171f,],  # Ahom Consonant Sign Medi..Ahom Consonant Sign Medi
275
        [0x11722, 0x11725,],  # Ahom Vowel Sign I       ..Ahom Vowel Sign Uu
276
        [0x11727, 0x1172b,],  # Ahom Vowel Sign Aw      ..Ahom Sign Killer
277
        [0x1182f, 0x11837,],  # (nil)                   ..
278
        [0x11839, 0x1183a,],  # (nil)                   ..
279
        [0x119d4, 0x119d7,],  # (nil)                   ..
280
        [0x119da, 0x119db,],  # (nil)                   ..
281
        [0x119e0, 0x119e0,],  # (nil)                   ..
282
        [0x11a01, 0x11a0a,],  # (nil)                   ..
283
        [0x11a33, 0x11a38,],  # (nil)                   ..
284
        [0x11a3b, 0x11a3e,],  # (nil)                   ..
285
        [0x11a47, 0x11a47,],  # (nil)                   ..
286
        [0x11a51, 0x11a56,],  # (nil)                   ..
287
        [0x11a59, 0x11a5b,],  # (nil)                   ..
288
        [0x11a8a, 0x11a96,],  # (nil)                   ..
289
        [0x11a98, 0x11a99,],  # (nil)                   ..
290
        [0x11c30, 0x11c36,],  # Bhaiksuki Vowel Sign I  ..Bhaiksuki Vowel Sign Voc
291
        [0x11c38, 0x11c3d,],  # Bhaiksuki Vowel Sign E  ..Bhaiksuki Sign Anusvara
292
        [0x11c3f, 0x11c3f,],  # Bhaiksuki Sign Virama   ..Bhaiksuki Sign Virama
293
        [0x11c92, 0x11ca7,],  # Marchen Subjoined Letter..Marchen Subjoined Letter
294
        [0x11caa, 0x11cb0,],  # Marchen Subjoined Letter..Marchen Vowel Sign Aa
295
        [0x11cb2, 0x11cb3,],  # Marchen Vowel Sign U    ..Marchen Vowel Sign E
296
        [0x11cb5, 0x11cb6,],  # Marchen Sign Anusvara   ..Marchen Sign Candrabindu
297
        [0x11d31, 0x11d36,],  # (nil)                   ..
298
        [0x11d3a, 0x11d3a,],  # (nil)                   ..
299
        [0x11d3c, 0x11d3d,],  # (nil)                   ..
300
        [0x11d3f, 0x11d45,],  # (nil)                   ..
301
        [0x11d47, 0x11d47,],  # (nil)                   ..
302
        [0x11d90, 0x11d91,],  # (nil)                   ..
303
        [0x11d95, 0x11d95,],  # (nil)                   ..
304
        [0x11d97, 0x11d97,],  # (nil)                   ..
305
        [0x11ef3, 0x11ef4,],  # (nil)                   ..
306
        [0x16af0, 0x16af4,],  # Bassa Vah Combining High..Bassa Vah Combining High
307
        [0x16b30, 0x16b36,],  # Pahawh Hmong Mark Cim Tu..Pahawh Hmong Mark Cim Ta
308
        [0x16f4f, 0x16f4f,],  # (nil)                   ..
309
        [0x16f8f, 0x16f92,],  # Miao Tone Right         ..Miao Tone Below
310
        [0x1bc9d, 0x1bc9e,],  # Duployan Thick Letter Se..Duployan Double Mark
311
        [0x1d167, 0x1d169,],  # Musical Symbol Combining..Musical Symbol Combining
312
        [0x1d17b, 0x1d182,],  # Musical Symbol Combining..Musical Symbol Combining
313
        [0x1d185, 0x1d18b,],  # Musical Symbol Combining..Musical Symbol Combining
314
        [0x1d1aa, 0x1d1ad,],  # Musical Symbol Combining..Musical Symbol Combining
315
        [0x1d242, 0x1d244,],  # Combining Greek Musical ..Combining Greek Musical
316
        [0x1da00, 0x1da36,],  # Signwriting Head Rim    ..Signwriting Air Sucking
317
        [0x1da3b, 0x1da6c,],  # Signwriting Mouth Closed..Signwriting Excitement
318
        [0x1da75, 0x1da75,],  # Signwriting Upper Body T..Signwriting Upper Body T
319
        [0x1da84, 0x1da84,],  # Signwriting Location Hea..Signwriting Location Hea
320
        [0x1da9b, 0x1da9f,],  # Signwriting Fill Modifie..Signwriting Fill Modifie
321
        [0x1daa1, 0x1daaf,],  # Signwriting Rotation Mod..Signwriting Rotation Mod
322
        [0x1e000, 0x1e006,],  # Combining Glagolitic Let..Combining Glagolitic Let
323
        [0x1e008, 0x1e018,],  # Combining Glagolitic Let..Combining Glagolitic Let
324
        [0x1e01b, 0x1e021,],  # Combining Glagolitic Let..Combining Glagolitic Let
325
        [0x1e023, 0x1e024,],  # Combining Glagolitic Let..Combining Glagolitic Let
326
        [0x1e026, 0x1e02a,],  # Combining Glagolitic Let..Combining Glagolitic Let
327
        [0x1e130, 0x1e136,],  # (nil)                   ..
328
        [0x1e2ec, 0x1e2ef,],  # (nil)                   ..
329
        [0x1e8d0, 0x1e8d6,],  # Mende Kikakui Combining ..Mende Kikakui Combining
330
        [0x1e944, 0x1e94a,],  # Adlam Alif Lengthener   ..Adlam Nukta
331
        [0xe0100, 0xe01ef,],  # Variation Selector-17   ..Variation Selector-256
332
    ]
333
);
334
335
define(
336
    __NAMESPACE__ . '\\' . 'WIDE_EASTASIAN',
337
    [
338
        [0x1100, 0x115f,],  # Hangul Choseong Kiyeok  ..Hangul Choseong Filler
339
        [0x231a, 0x231b,],  # Watch                   ..Hourglass
340
        [0x2329, 0x232a,],  # Left-pointing Angle Brac..Right-pointing Angle Bra
341
        [0x23e9, 0x23ec,],  # Black Right-pointing Dou..Black Down-pointing Doub
342
        [0x23f0, 0x23f0,],  # Alarm Clock             ..Alarm Clock
343
        [0x23f3, 0x23f3,],  # Hourglass With Flowing S..Hourglass With Flowing S
344
        [0x25fd, 0x25fe,],  # White Medium Small Squar..Black Medium Small Squar
345
        [0x2614, 0x2615,],  # Umbrella With Rain Drops..Hot Beverage
346
        [0x2648, 0x2653,],  # Aries                   ..Pisces
347
        [0x267f, 0x267f,],  # Wheelchair Symbol       ..Wheelchair Symbol
348
        [0x2693, 0x2693,],  # Anchor                  ..Anchor
349
        [0x26a1, 0x26a1,],  # High Voltage Sign       ..High Voltage Sign
350
        [0x26aa, 0x26ab,],  # Medium White Circle     ..Medium Black Circle
351
        [0x26bd, 0x26be,],  # Soccer Ball             ..Baseball
352
        [0x26c4, 0x26c5,],  # Snowman Without Snow    ..Sun Behind Cloud
353
        [0x26ce, 0x26ce,],  # Ophiuchus               ..Ophiuchus
354
        [0x26d4, 0x26d4,],  # No Entry                ..No Entry
355
        [0x26ea, 0x26ea,],  # Church                  ..Church
356
        [0x26f2, 0x26f3,],  # Fountain                ..Flag In Hole
357
        [0x26f5, 0x26f5,],  # Sailboat                ..Sailboat
358
        [0x26fa, 0x26fa,],  # Tent                    ..Tent
359
        [0x26fd, 0x26fd,],  # Fuel Pump               ..Fuel Pump
360
        [0x2705, 0x2705,],  # White Heavy Check Mark  ..White Heavy Check Mark
361
        [0x270a, 0x270b,],  # Raised Fist             ..Raised Hand
362
        [0x2728, 0x2728,],  # Sparkles                ..Sparkles
363
        [0x274c, 0x274c,],  # Cross Mark              ..Cross Mark
364
        [0x274e, 0x274e,],  # Negative Squared Cross M..Negative Squared Cross M
365
        [0x2753, 0x2755,],  # Black Question Mark Orna..White Exclamation Mark O
366
        [0x2757, 0x2757,],  # Heavy Exclamation Mark S..Heavy Exclamation Mark S
367
        [0x2795, 0x2797,],  # Heavy Plus Sign         ..Heavy Division Sign
368
        [0x27b0, 0x27b0,],  # Curly Loop              ..Curly Loop
369
        [0x27bf, 0x27bf,],  # Double Curly Loop       ..Double Curly Loop
370
        [0x2b1b, 0x2b1c,],  # Black Large Square      ..White Large Square
371
        [0x2b50, 0x2b50,],  # White Medium Star       ..White Medium Star
372
        [0x2b55, 0x2b55,],  # Heavy Large Circle      ..Heavy Large Circle
373
        [0x2e80, 0x2e99,],  # Cjk Radical Repeat      ..Cjk Radical Rap
374
        [0x2e9b, 0x2ef3,],  # Cjk Radical Choke       ..Cjk Radical C-simplified
375
        [0x2f00, 0x2fd5,],  # Kangxi Radical One      ..Kangxi Radical Flute
376
        [0x2ff0, 0x2ffb,],  # Ideographic Description ..Ideographic Description
377
        [0x3000, 0x303e,],  # Ideographic Space       ..Ideographic Variation In
378
        [0x3041, 0x3096,],  # Hiragana Letter Small A ..Hiragana Letter Small Ke
379
        [0x3099, 0x30ff,],  # Combining Katakana-hirag..Katakana Digraph Koto
380
        [0x3105, 0x312f,],  # Bopomofo Letter B       ..
381
        [0x3131, 0x318e,],  # Hangul Letter Kiyeok    ..Hangul Letter Araeae
382
        [0x3190, 0x31ba,],  # Ideographic Annotation L..Bopomofo Letter Zy
383
        [0x31c0, 0x31e3,],  # Cjk Stroke T            ..Cjk Stroke Q
384
        [0x31f0, 0x321e,],  # Katakana Letter Small Ku..Parenthesized Korean Cha
385
        [0x3220, 0x3247,],  # Parenthesized Ideograph ..Circled Ideograph Koto
386
        [0x3250, 0x4dbf,],  # Partnership Sign        ..
387
        [0x4e00, 0xa48c,],  # Cjk Unified Ideograph-4e..Yi Syllable Yyr
388
        [0xa490, 0xa4c6,],  # Yi Radical Qot          ..Yi Radical Ke
389
        [0xa960, 0xa97c,],  # Hangul Choseong Tikeut-m..Hangul Choseong Ssangyeo
390
        [0xac00, 0xd7a3,],  # Hangul Syllable Ga      ..Hangul Syllable Hih
391
        [0xf900, 0xfaff,],  # Cjk Compatibility Ideogr..
392
        [0xfe10, 0xfe19,],  # Presentation Form For Ve..Presentation Form For Ve
393
        [0xfe30, 0xfe52,],  # Presentation Form For Ve..Small Full Stop
394
        [0xfe54, 0xfe66,],  # Small Semicolon         ..Small Equals Sign
395
        [0xfe68, 0xfe6b,],  # Small Reverse Solidus   ..Small Commercial At
396
        [0xff01, 0xff60,],  # Fullwidth Exclamation Ma..Fullwidth Right White Pa
397
        [0xffe0, 0xffe6,],  # Fullwidth Cent Sign     ..Fullwidth Won Sign
398
        [0x16fe0, 0x16fe3,],  # Tangut Iteration Mark   ..
399
        [0x17000, 0x187f7,],  # (nil)                   ..
400
        [0x18800, 0x18af2,],  # Tangut Component-001    ..Tangut Component-755
401
        [0x1b000, 0x1b11e,],  # Katakana Letter Archaic ..
402
        [0x1b150, 0x1b152,],  # (nil)                   ..
403
        [0x1b164, 0x1b167,],  # (nil)                   ..
404
        [0x1b170, 0x1b2fb,],  # (nil)                   ..
405
        [0x1f004, 0x1f004,],  # Mahjong Tile Red Dragon ..Mahjong Tile Red Dragon
406
        [0x1f0cf, 0x1f0cf,],  # Playing Card Black Joker..Playing Card Black Joker
407
        [0x1f18e, 0x1f18e,],  # Negative Squared Ab     ..Negative Squared Ab
408
        [0x1f191, 0x1f19a,],  # Squared Cl              ..Squared Vs
409
        [0x1f200, 0x1f202,],  # Square Hiragana Hoka    ..Squared Katakana Sa
410
        [0x1f210, 0x1f23b,],  # Squared Cjk Unified Ideo..Squared Cjk Unified Ideo
411
        [0x1f240, 0x1f248,],  # Tortoise Shell Bracketed..Tortoise Shell Bracketed
412
        [0x1f250, 0x1f251,],  # Circled Ideograph Advant..Circled Ideograph Accept
413
        [0x1f260, 0x1f265,],  # (nil)                   ..
414
        [0x1f300, 0x1f320,],  # Cyclone                 ..Shooting Star
415
        [0x1f32d, 0x1f335,],  # Hot Dog                 ..Cactus
416
        [0x1f337, 0x1f37c,],  # Tulip                   ..Baby Bottle
417
        [0x1f37e, 0x1f393,],  # Bottle With Popping Cork..Graduation Cap
418
        [0x1f3a0, 0x1f3ca,],  # Carousel Horse          ..Swimmer
419
        [0x1f3cf, 0x1f3d3,],  # Cricket Bat And Ball    ..Table Tennis Paddle And
420
        [0x1f3e0, 0x1f3f0,],  # House Building          ..European Castle
421
        [0x1f3f4, 0x1f3f4,],  # Waving Black Flag       ..Waving Black Flag
422
        [0x1f3f8, 0x1f43e,],  # Badminton Racquet And Sh..Paw Prints
423
        [0x1f440, 0x1f440,],  # Eyes                    ..Eyes
424
        [0x1f442, 0x1f4fc,],  # Ear                     ..Videocassette
425
        [0x1f4ff, 0x1f53d,],  # Prayer Beads            ..Down-pointing Small Red
426
        [0x1f54b, 0x1f54e,],  # Kaaba                   ..Menorah With Nine Branch
427
        [0x1f550, 0x1f567,],  # Clock Face One Oclock   ..Clock Face Twelve-thirty
428
        [0x1f57a, 0x1f57a,],  # Man Dancing             ..Man Dancing
429
        [0x1f595, 0x1f596,],  # Reversed Hand With Middl..Raised Hand With Part Be
430
        [0x1f5a4, 0x1f5a4,],  # Black Heart             ..Black Heart
431
        [0x1f5fb, 0x1f64f,],  # Mount Fuji              ..Person With Folded Hands
432
        [0x1f680, 0x1f6c5,],  # Rocket                  ..Left Luggage
433
        [0x1f6cc, 0x1f6cc,],  # Sleeping Accommodation  ..Sleeping Accommodation
434
        [0x1f6d0, 0x1f6d2,],  # Place Of Worship        ..Shopping Trolley
435
        [0x1f6d5, 0x1f6d5,],  # (nil)                   ..
436
        [0x1f6eb, 0x1f6ec,],  # Airplane Departure      ..Airplane Arriving
437
        [0x1f6f4, 0x1f6fa,],  # Scooter                 ..
438
        [0x1f7e0, 0x1f7eb,],  # (nil)                   ..
439
        [0x1f90d, 0x1f971,],  # (nil)                   ..
440
        [0x1f973, 0x1f976,],  # (nil)                   ..
441
        [0x1f97a, 0x1f9a2,],  # (nil)                   ..
442
        [0x1f9a5, 0x1f9aa,],  # (nil)                   ..
443
        [0x1f9ae, 0x1f9ca,],  # (nil)                   ..
444
        [0x1f9cd, 0x1f9ff,],  # (nil)                   ..
445
        [0x1fa70, 0x1fa73,],  # (nil)                   ..
446
        [0x1fa78, 0x1fa7a,],  # (nil)                   ..
447
        [0x1fa80, 0x1fa82,],  # (nil)                   ..
448
        [0x1fa90, 0x1fa95,],  # (nil)                   ..
449
        [0x20000, 0x2fffd,],  # Cjk Unified Ideograph-20..
450
        [0x30000, 0x3fffd,],  # (nil)                   ..
451
    ]
452
);
453
// @codeCoverageIgnoreEnd
454
455
if (!\function_exists(__NAMESPACE__ . '\wcwidth')) {
456
    /**
457
     * @param string $wc
458
     * @return int
459
     */
460
    function wcwidth(string $wc): int
461
    {
462 9
        return UCode::wcwidth($wc);
463
    }
464
}
465
466
if (!\function_exists(__NAMESPACE__ . '\wcswidth')) {
467
    /**
468
     * @param null|string $subject
469
     * @param null|int $n
470
     * @return int
471
     */
472
    function wcswidth(?string $subject, ?int $n = null): int
473
    {
474 11
        if (null === $subject) {
475 1
            return 0;
476
        }
477 10
        return UCode::wcswidth($subject, $n);
478
    }
479
}
480