From 5ea9f08c7d9c449e218dc9f399bbb27b5d677acb Mon Sep 17 00:00:00 2001 From: Jon Stovell Date: Tue, 15 Oct 2024 13:46:15 -0600 Subject: [PATCH 1/2] Allow Khmer Vowel Inherent AQ and Khmer Vowel Inherent AA Signed-off-by: Jon Stovell --- Sources/Subs-Charset.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Sources/Subs-Charset.php b/Sources/Subs-Charset.php index 540ff40295..592b670359 100644 --- a/Sources/Subs-Charset.php +++ b/Sources/Subs-Charset.php @@ -718,10 +718,6 @@ function utf8_sanitize_invisibles($string, $level, $substitute) $disallowed[] = '[' . implode('', array( // Soft Hyphen. '\x{AD}', - // Khmer Vowel Inherent AQ and Khmer Vowel Inherent AA. - // Unicode Standard ch. 16 says: "they are insufficient for [their] - // purpose and should be considered errors in the encoding." - '\x{17B4}-\x{17B5}', // Invisible math characters. '\x{2061}-\x{2064}', // Deprecated formatting characters. From e2e446c42adf042dbdf85d17ab2a464b5e8a3dee Mon Sep 17 00:00:00 2001 From: Jon Stovell Date: Tue, 15 Oct 2024 13:49:40 -0600 Subject: [PATCH 2/2] Updates included Unicode data to version 16 Signed-off-by: Jon Stovell --- Sources/Unicode/CaseFold.php | 54 + Sources/Unicode/CaseLower.php | 58 +- Sources/Unicode/CaseUpper.php | 58 +- Sources/Unicode/CombiningClasses.php | 16 +- Sources/Unicode/Composition.php | 24 +- Sources/Unicode/DecompositionCanonical.php | 24 +- .../Unicode/DecompositionCompatibility.php | 40 +- Sources/Unicode/Idna.php | 1145 +++++++---------- Sources/Unicode/Metadata.php | 2 +- Sources/Unicode/QuickCheck.php | 51 +- Sources/Unicode/RegularExpressions.php | 287 +++-- 11 files changed, 963 insertions(+), 796 deletions(-) diff --git a/Sources/Unicode/CaseFold.php b/Sources/Unicode/CaseFold.php index 912e85cc22..4ec0b8e5dd 100644 --- a/Sources/Unicode/CaseFold.php +++ b/Sources/Unicode/CaseFold.php @@ -559,6 +559,7 @@ function utf8_casefold_simple_maps() "\xE1\xB2\x86" => "\xD1\x8A", "\xE1\xB2\x87" => "\xD1\xA3", "\xE1\xB2\x88" => "\xEA\x99\x8B", + "\xE1\xB2\x89" => "\xE1\xB2\x8A", "\xE1\xB2\x90" => "\xE1\x83\x90", "\xE1\xB2\x91" => "\xE1\x83\x91", "\xE1\xB2\x92" => "\xE1\x83\x92", @@ -1111,9 +1112,13 @@ function utf8_casefold_simple_maps() "\xEA\x9F\x86" => "\xE1\xB6\x8E", "\xEA\x9F\x87" => "\xEA\x9F\x88", "\xEA\x9F\x89" => "\xEA\x9F\x8A", + "\xEA\x9F\x8B" => "\xC9\xA4", + "\xEA\x9F\x8C" => "\xEA\x9F\x8D", "\xEA\x9F\x90" => "\xEA\x9F\x91", "\xEA\x9F\x96" => "\xEA\x9F\x97", "\xEA\x9F\x98" => "\xEA\x9F\x99", + "\xEA\x9F\x9A" => "\xEA\x9F\x9B", + "\xEA\x9F\x9C" => "\xC6\x9B", "\xEA\x9F\xB5" => "\xEA\x9F\xB6", "\xEA\xAD\xB0" => "\xE1\x8E\xA0", "\xEA\xAD\xB1" => "\xE1\x8E\xA1", @@ -1384,6 +1389,28 @@ function utf8_casefold_simple_maps() "\xF0\x90\xB2\xB0" => "\xF0\x90\xB3\xB0", "\xF0\x90\xB2\xB1" => "\xF0\x90\xB3\xB1", "\xF0\x90\xB2\xB2" => "\xF0\x90\xB3\xB2", + "\xF0\x90\xB5\x90" => "\xF0\x90\xB5\xB0", + "\xF0\x90\xB5\x91" => "\xF0\x90\xB5\xB1", + "\xF0\x90\xB5\x92" => "\xF0\x90\xB5\xB2", + "\xF0\x90\xB5\x93" => "\xF0\x90\xB5\xB3", + "\xF0\x90\xB5\x94" => "\xF0\x90\xB5\xB4", + "\xF0\x90\xB5\x95" => "\xF0\x90\xB5\xB5", + "\xF0\x90\xB5\x96" => "\xF0\x90\xB5\xB6", + "\xF0\x90\xB5\x97" => "\xF0\x90\xB5\xB7", + "\xF0\x90\xB5\x98" => "\xF0\x90\xB5\xB8", + "\xF0\x90\xB5\x99" => "\xF0\x90\xB5\xB9", + "\xF0\x90\xB5\x9A" => "\xF0\x90\xB5\xBA", + "\xF0\x90\xB5\x9B" => "\xF0\x90\xB5\xBB", + "\xF0\x90\xB5\x9C" => "\xF0\x90\xB5\xBC", + "\xF0\x90\xB5\x9D" => "\xF0\x90\xB5\xBD", + "\xF0\x90\xB5\x9E" => "\xF0\x90\xB5\xBE", + "\xF0\x90\xB5\x9F" => "\xF0\x90\xB5\xBF", + "\xF0\x90\xB5\xA0" => "\xF0\x90\xB6\x80", + "\xF0\x90\xB5\xA1" => "\xF0\x90\xB6\x81", + "\xF0\x90\xB5\xA2" => "\xF0\x90\xB6\x82", + "\xF0\x90\xB5\xA3" => "\xF0\x90\xB6\x83", + "\xF0\x90\xB5\xA4" => "\xF0\x90\xB6\x84", + "\xF0\x90\xB5\xA5" => "\xF0\x90\xB6\x85", "\xF0\x91\xA2\xA0" => "\xF0\x91\xA3\x80", "\xF0\x91\xA2\xA1" => "\xF0\x91\xA3\x81", "\xF0\x91\xA2\xA2" => "\xF0\x91\xA3\x82", @@ -2037,6 +2064,7 @@ function utf8_casefold_maps() "\xE1\xB2\x86" => "\xD1\x8A", "\xE1\xB2\x87" => "\xD1\xA3", "\xE1\xB2\x88" => "\xEA\x99\x8B", + "\xE1\xB2\x89" => "\xE1\xB2\x8A", "\xE1\xB2\x90" => "\xE1\x83\x90", "\xE1\xB2\x91" => "\xE1\x83\x91", "\xE1\xB2\x92" => "\xE1\x83\x92", @@ -2644,9 +2672,13 @@ function utf8_casefold_maps() "\xEA\x9F\x86" => "\xE1\xB6\x8E", "\xEA\x9F\x87" => "\xEA\x9F\x88", "\xEA\x9F\x89" => "\xEA\x9F\x8A", + "\xEA\x9F\x8B" => "\xC9\xA4", + "\xEA\x9F\x8C" => "\xEA\x9F\x8D", "\xEA\x9F\x90" => "\xEA\x9F\x91", "\xEA\x9F\x96" => "\xEA\x9F\x97", "\xEA\x9F\x98" => "\xEA\x9F\x99", + "\xEA\x9F\x9A" => "\xEA\x9F\x9B", + "\xEA\x9F\x9C" => "\xC6\x9B", "\xEA\x9F\xB5" => "\xEA\x9F\xB6", "\xEA\xAD\xB0" => "\xE1\x8E\xA0", "\xEA\xAD\xB1" => "\xE1\x8E\xA1", @@ -2928,6 +2960,28 @@ function utf8_casefold_maps() "\xF0\x90\xB2\xB0" => "\xF0\x90\xB3\xB0", "\xF0\x90\xB2\xB1" => "\xF0\x90\xB3\xB1", "\xF0\x90\xB2\xB2" => "\xF0\x90\xB3\xB2", + "\xF0\x90\xB5\x90" => "\xF0\x90\xB5\xB0", + "\xF0\x90\xB5\x91" => "\xF0\x90\xB5\xB1", + "\xF0\x90\xB5\x92" => "\xF0\x90\xB5\xB2", + "\xF0\x90\xB5\x93" => "\xF0\x90\xB5\xB3", + "\xF0\x90\xB5\x94" => "\xF0\x90\xB5\xB4", + "\xF0\x90\xB5\x95" => "\xF0\x90\xB5\xB5", + "\xF0\x90\xB5\x96" => "\xF0\x90\xB5\xB6", + "\xF0\x90\xB5\x97" => "\xF0\x90\xB5\xB7", + "\xF0\x90\xB5\x98" => "\xF0\x90\xB5\xB8", + "\xF0\x90\xB5\x99" => "\xF0\x90\xB5\xB9", + "\xF0\x90\xB5\x9A" => "\xF0\x90\xB5\xBA", + "\xF0\x90\xB5\x9B" => "\xF0\x90\xB5\xBB", + "\xF0\x90\xB5\x9C" => "\xF0\x90\xB5\xBC", + "\xF0\x90\xB5\x9D" => "\xF0\x90\xB5\xBD", + "\xF0\x90\xB5\x9E" => "\xF0\x90\xB5\xBE", + "\xF0\x90\xB5\x9F" => "\xF0\x90\xB5\xBF", + "\xF0\x90\xB5\xA0" => "\xF0\x90\xB6\x80", + "\xF0\x90\xB5\xA1" => "\xF0\x90\xB6\x81", + "\xF0\x90\xB5\xA2" => "\xF0\x90\xB6\x82", + "\xF0\x90\xB5\xA3" => "\xF0\x90\xB6\x83", + "\xF0\x90\xB5\xA4" => "\xF0\x90\xB6\x84", + "\xF0\x90\xB5\xA5" => "\xF0\x90\xB6\x85", "\xF0\x91\xA2\xA0" => "\xF0\x91\xA3\x80", "\xF0\x91\xA2\xA1" => "\xF0\x91\xA3\x81", "\xF0\x91\xA2\xA2" => "\xF0\x91\xA3\x82", diff --git a/Sources/Unicode/CaseLower.php b/Sources/Unicode/CaseLower.php index 6d22c9f899..7e7655b8a2 100644 --- a/Sources/Unicode/CaseLower.php +++ b/Sources/Unicode/CaseLower.php @@ -5,10 +5,10 @@ * * @package SMF * @author Simple Machines https://www.simplemachines.org - * @copyright 2022 Simple Machines and individual contributors + * @copyright 2024 Simple Machines and individual contributors * @license https://www.simplemachines.org/about/smf/license.php BSD * - * @version 2.1.3 + * @version 2.1.5 */ if (!defined('SMF')) @@ -620,6 +620,7 @@ function utf8_strtolower_simple_maps() "\xE1\x8F\xB3" => "\xE1\x8F\xBB", "\xE1\x8F\xB4" => "\xE1\x8F\xBC", "\xE1\x8F\xB5" => "\xE1\x8F\xBD", + "\xE1\xB2\x89" => "\xE1\xB2\x8A", "\xE1\xB2\x90" => "\xE1\x83\x90", "\xE1\xB2\x91" => "\xE1\x83\x91", "\xE1\xB2\x92" => "\xE1\x83\x92", @@ -1168,9 +1169,13 @@ function utf8_strtolower_simple_maps() "\xEA\x9F\x86" => "\xE1\xB6\x8E", "\xEA\x9F\x87" => "\xEA\x9F\x88", "\xEA\x9F\x89" => "\xEA\x9F\x8A", + "\xEA\x9F\x8B" => "\xC9\xA4", + "\xEA\x9F\x8C" => "\xEA\x9F\x8D", "\xEA\x9F\x90" => "\xEA\x9F\x91", "\xEA\x9F\x96" => "\xEA\x9F\x97", "\xEA\x9F\x98" => "\xEA\x9F\x99", + "\xEA\x9F\x9A" => "\xEA\x9F\x9B", + "\xEA\x9F\x9C" => "\xC6\x9B", "\xEA\x9F\xB5" => "\xEA\x9F\xB6", "\xEF\xBC\xA1" => "\xEF\xBD\x81", "\xEF\xBC\xA2" => "\xEF\xBD\x82", @@ -1360,6 +1365,28 @@ function utf8_strtolower_simple_maps() "\xF0\x90\xB2\xB0" => "\xF0\x90\xB3\xB0", "\xF0\x90\xB2\xB1" => "\xF0\x90\xB3\xB1", "\xF0\x90\xB2\xB2" => "\xF0\x90\xB3\xB2", + "\xF0\x90\xB5\x90" => "\xF0\x90\xB5\xB0", + "\xF0\x90\xB5\x91" => "\xF0\x90\xB5\xB1", + "\xF0\x90\xB5\x92" => "\xF0\x90\xB5\xB2", + "\xF0\x90\xB5\x93" => "\xF0\x90\xB5\xB3", + "\xF0\x90\xB5\x94" => "\xF0\x90\xB5\xB4", + "\xF0\x90\xB5\x95" => "\xF0\x90\xB5\xB5", + "\xF0\x90\xB5\x96" => "\xF0\x90\xB5\xB6", + "\xF0\x90\xB5\x97" => "\xF0\x90\xB5\xB7", + "\xF0\x90\xB5\x98" => "\xF0\x90\xB5\xB8", + "\xF0\x90\xB5\x99" => "\xF0\x90\xB5\xB9", + "\xF0\x90\xB5\x9A" => "\xF0\x90\xB5\xBA", + "\xF0\x90\xB5\x9B" => "\xF0\x90\xB5\xBB", + "\xF0\x90\xB5\x9C" => "\xF0\x90\xB5\xBC", + "\xF0\x90\xB5\x9D" => "\xF0\x90\xB5\xBD", + "\xF0\x90\xB5\x9E" => "\xF0\x90\xB5\xBE", + "\xF0\x90\xB5\x9F" => "\xF0\x90\xB5\xBF", + "\xF0\x90\xB5\xA0" => "\xF0\x90\xB6\x80", + "\xF0\x90\xB5\xA1" => "\xF0\x90\xB6\x81", + "\xF0\x90\xB5\xA2" => "\xF0\x90\xB6\x82", + "\xF0\x90\xB5\xA3" => "\xF0\x90\xB6\x83", + "\xF0\x90\xB5\xA4" => "\xF0\x90\xB6\x84", + "\xF0\x90\xB5\xA5" => "\xF0\x90\xB6\x85", "\xF0\x91\xA2\xA0" => "\xF0\x91\xA3\x80", "\xF0\x91\xA2\xA1" => "\xF0\x91\xA3\x81", "\xF0\x91\xA2\xA2" => "\xF0\x91\xA3\x82", @@ -2149,6 +2176,28 @@ function utf8_strtolower_maps() "\xF0\x90\xB2\xB1" => "\xF0\x90\xB3\xB1", "\xF0\x90\xB2\xB2" => "\xF0\x90\xB3\xB2", "\xE1\x83\x8D" => "\xE2\xB4\xAD", + "\xF0\x90\xB5\x90" => "\xF0\x90\xB5\xB0", + "\xF0\x90\xB5\x91" => "\xF0\x90\xB5\xB1", + "\xF0\x90\xB5\x92" => "\xF0\x90\xB5\xB2", + "\xF0\x90\xB5\x93" => "\xF0\x90\xB5\xB3", + "\xF0\x90\xB5\x94" => "\xF0\x90\xB5\xB4", + "\xF0\x90\xB5\x95" => "\xF0\x90\xB5\xB5", + "\xF0\x90\xB5\x96" => "\xF0\x90\xB5\xB6", + "\xF0\x90\xB5\x97" => "\xF0\x90\xB5\xB7", + "\xF0\x90\xB5\x98" => "\xF0\x90\xB5\xB8", + "\xF0\x90\xB5\x99" => "\xF0\x90\xB5\xB9", + "\xF0\x90\xB5\x9A" => "\xF0\x90\xB5\xBA", + "\xF0\x90\xB5\x9B" => "\xF0\x90\xB5\xBB", + "\xF0\x90\xB5\x9C" => "\xF0\x90\xB5\xBC", + "\xF0\x90\xB5\x9D" => "\xF0\x90\xB5\xBD", + "\xF0\x90\xB5\x9E" => "\xF0\x90\xB5\xBE", + "\xF0\x90\xB5\x9F" => "\xF0\x90\xB5\xBF", + "\xF0\x90\xB5\xA0" => "\xF0\x90\xB6\x80", + "\xF0\x90\xB5\xA1" => "\xF0\x90\xB6\x81", + "\xF0\x90\xB5\xA2" => "\xF0\x90\xB6\x82", + "\xF0\x90\xB5\xA3" => "\xF0\x90\xB6\x83", + "\xF0\x90\xB5\xA4" => "\xF0\x90\xB6\x84", + "\xF0\x90\xB5\xA5" => "\xF0\x90\xB6\x85", "\xF0\x91\xA2\xA0" => "\xF0\x91\xA3\x80", "\xF0\x91\xA2\xA1" => "\xF0\x91\xA3\x81", "\xF0\x91\xA2\xA2" => "\xF0\x91\xA3\x82", @@ -2299,6 +2348,7 @@ function utf8_strtolower_maps() "\xF0\x96\xB9\x9D" => "\xF0\x96\xB9\xBD", "\xF0\x96\xB9\x9E" => "\xF0\x96\xB9\xBE", "\xF0\x96\xB9\x9F" => "\xF0\x96\xB9\xBF", + "\xE1\xB2\x89" => "\xE1\xB2\x8A", "\xE1\xB2\x90" => "\xE1\x83\x90", "\xE1\xB2\x91" => "\xE1\x83\x91", "\xE1\xB2\x92" => "\xE1\x83\x92", @@ -2938,9 +2988,13 @@ function utf8_strtolower_maps() "\xEA\x9F\x86" => "\xE1\xB6\x8E", "\xEA\x9F\x87" => "\xEA\x9F\x88", "\xEA\x9F\x89" => "\xEA\x9F\x8A", + "\xEA\x9F\x8B" => "\xC9\xA4", + "\xEA\x9F\x8C" => "\xEA\x9F\x8D", "\xEA\x9F\x90" => "\xEA\x9F\x91", "\xEA\x9F\x96" => "\xEA\x9F\x97", "\xEA\x9F\x98" => "\xEA\x9F\x99", + "\xEA\x9F\x9A" => "\xEA\x9F\x9B", + "\xEA\x9F\x9C" => "\xC6\x9B", "\xEA\x9F\xB5" => "\xEA\x9F\xB6", "\xEF\xAC\x80" => "\xEF\xAC\x80", "\xEF\xAC\x81" => "\xEF\xAC\x81", diff --git a/Sources/Unicode/CaseUpper.php b/Sources/Unicode/CaseUpper.php index b545628e10..8b23d6dd26 100644 --- a/Sources/Unicode/CaseUpper.php +++ b/Sources/Unicode/CaseUpper.php @@ -5,10 +5,10 @@ * * @package SMF * @author Simple Machines https://www.simplemachines.org - * @copyright 2022 Simple Machines and individual contributors + * @copyright 2024 Simple Machines and individual contributors * @license https://www.simplemachines.org/about/smf/license.php BSD * - * @version 2.1.3 + * @version 2.1.5 */ if (!defined('SMF')) @@ -155,6 +155,7 @@ function utf8_strtoupper_simple_maps() "\xC6\x95" => "\xC7\xB6", "\xC6\x99" => "\xC6\x98", "\xC6\x9A" => "\xC8\xBD", + "\xC6\x9B" => "\xEA\x9F\x9C", "\xC6\x9E" => "\xC8\xA0", "\xC6\xA1" => "\xC6\xA0", "\xC6\xA3" => "\xC6\xA2", @@ -245,6 +246,7 @@ function utf8_strtoupper_simple_maps() "\xC9\xA0" => "\xC6\x93", "\xC9\xA1" => "\xEA\x9E\xAC", "\xC9\xA3" => "\xC6\x94", + "\xC9\xA4" => "\xEA\x9F\x8B", "\xC9\xA5" => "\xEA\x9E\x8D", "\xC9\xA6" => "\xEA\x9E\xAA", "\xC9\xA8" => "\xC6\x97", @@ -581,6 +583,7 @@ function utf8_strtoupper_simple_maps() "\xE1\xB2\x86" => "\xD0\xAA", "\xE1\xB2\x87" => "\xD1\xA2", "\xE1\xB2\x88" => "\xEA\x99\x8A", + "\xE1\xB2\x8A" => "\xE1\xB2\x89", "\xE1\xB5\xB9" => "\xEA\x9D\xBD", "\xE1\xB5\xBD" => "\xE2\xB1\xA3", "\xE1\xB6\x8E" => "\xEA\x9F\x86", @@ -1104,9 +1107,11 @@ function utf8_strtoupper_simple_maps() "\xEA\x9F\x83" => "\xEA\x9F\x82", "\xEA\x9F\x88" => "\xEA\x9F\x87", "\xEA\x9F\x8A" => "\xEA\x9F\x89", + "\xEA\x9F\x8D" => "\xEA\x9F\x8C", "\xEA\x9F\x91" => "\xEA\x9F\x90", "\xEA\x9F\x97" => "\xEA\x9F\x96", "\xEA\x9F\x99" => "\xEA\x9F\x98", + "\xEA\x9F\x9B" => "\xEA\x9F\x9A", "\xEA\x9F\xB6" => "\xEA\x9F\xB5", "\xEA\xAD\x93" => "\xEA\x9E\xB3", "\xEA\xAD\xB0" => "\xE1\x8E\xA0", @@ -1377,6 +1382,28 @@ function utf8_strtoupper_simple_maps() "\xF0\x90\xB3\xB0" => "\xF0\x90\xB2\xB0", "\xF0\x90\xB3\xB1" => "\xF0\x90\xB2\xB1", "\xF0\x90\xB3\xB2" => "\xF0\x90\xB2\xB2", + "\xF0\x90\xB5\xB0" => "\xF0\x90\xB5\x90", + "\xF0\x90\xB5\xB1" => "\xF0\x90\xB5\x91", + "\xF0\x90\xB5\xB2" => "\xF0\x90\xB5\x92", + "\xF0\x90\xB5\xB3" => "\xF0\x90\xB5\x93", + "\xF0\x90\xB5\xB4" => "\xF0\x90\xB5\x94", + "\xF0\x90\xB5\xB5" => "\xF0\x90\xB5\x95", + "\xF0\x90\xB5\xB6" => "\xF0\x90\xB5\x96", + "\xF0\x90\xB5\xB7" => "\xF0\x90\xB5\x97", + "\xF0\x90\xB5\xB8" => "\xF0\x90\xB5\x98", + "\xF0\x90\xB5\xB9" => "\xF0\x90\xB5\x99", + "\xF0\x90\xB5\xBA" => "\xF0\x90\xB5\x9A", + "\xF0\x90\xB5\xBB" => "\xF0\x90\xB5\x9B", + "\xF0\x90\xB5\xBC" => "\xF0\x90\xB5\x9C", + "\xF0\x90\xB5\xBD" => "\xF0\x90\xB5\x9D", + "\xF0\x90\xB5\xBE" => "\xF0\x90\xB5\x9E", + "\xF0\x90\xB5\xBF" => "\xF0\x90\xB5\x9F", + "\xF0\x90\xB6\x80" => "\xF0\x90\xB5\xA0", + "\xF0\x90\xB6\x81" => "\xF0\x90\xB5\xA1", + "\xF0\x90\xB6\x82" => "\xF0\x90\xB5\xA2", + "\xF0\x90\xB6\x83" => "\xF0\x90\xB5\xA3", + "\xF0\x90\xB6\x84" => "\xF0\x90\xB5\xA4", + "\xF0\x90\xB6\x85" => "\xF0\x90\xB5\xA5", "\xF0\x91\xA3\x80" => "\xF0\x91\xA2\xA0", "\xF0\x91\xA3\x81" => "\xF0\x91\xA2\xA1", "\xF0\x91\xA3\x82" => "\xF0\x91\xA2\xA2", @@ -1622,6 +1649,7 @@ function utf8_strtoupper_maps() "\xC6\x95" => "\xC7\xB6", "\xC6\x99" => "\xC6\x98", "\xC6\x9A" => "\xC8\xBD", + "\xC6\x9B" => "\xEA\x9F\x9C", "\xC6\x9E" => "\xC8\xA0", "\xC6\xA1" => "\xC6\xA0", "\xC6\xA3" => "\xC6\xA2", @@ -1713,6 +1741,7 @@ function utf8_strtoupper_maps() "\xC9\xA0" => "\xC6\x93", "\xC9\xA1" => "\xEA\x9E\xAC", "\xC9\xA3" => "\xC6\x94", + "\xC9\xA4" => "\xEA\x9F\x8B", "\xC9\xA5" => "\xEA\x9E\x8D", "\xC9\xA6" => "\xEA\x9E\xAA", "\xC9\xA8" => "\xC6\x97", @@ -2160,7 +2189,29 @@ function utf8_strtoupper_maps() "\xE1\x83\x94" => "\xE1\xB2\x94", "\xE1\x83\x95" => "\xE1\xB2\x95", "\xE1\x83\x96" => "\xE1\xB2\x96", + "\xF0\x90\xB5\xB0" => "\xF0\x90\xB5\x90", + "\xF0\x90\xB5\xB1" => "\xF0\x90\xB5\x91", + "\xF0\x90\xB5\xB2" => "\xF0\x90\xB5\x92", + "\xF0\x90\xB5\xB3" => "\xF0\x90\xB5\x93", + "\xF0\x90\xB5\xB4" => "\xF0\x90\xB5\x94", + "\xF0\x90\xB5\xB5" => "\xF0\x90\xB5\x95", + "\xF0\x90\xB5\xB6" => "\xF0\x90\xB5\x96", + "\xF0\x90\xB5\xB7" => "\xF0\x90\xB5\x97", + "\xF0\x90\xB5\xB8" => "\xF0\x90\xB5\x98", + "\xF0\x90\xB5\xB9" => "\xF0\x90\xB5\x99", "\xE1\x83\x97" => "\xE1\xB2\x97", + "\xF0\x90\xB5\xBA" => "\xF0\x90\xB5\x9A", + "\xF0\x90\xB5\xBB" => "\xF0\x90\xB5\x9B", + "\xF0\x90\xB5\xBC" => "\xF0\x90\xB5\x9C", + "\xF0\x90\xB5\xBD" => "\xF0\x90\xB5\x9D", + "\xF0\x90\xB5\xBE" => "\xF0\x90\xB5\x9E", + "\xF0\x90\xB5\xBF" => "\xF0\x90\xB5\x9F", + "\xF0\x90\xB6\x80" => "\xF0\x90\xB5\xA0", + "\xF0\x90\xB6\x81" => "\xF0\x90\xB5\xA1", + "\xF0\x90\xB6\x82" => "\xF0\x90\xB5\xA2", + "\xF0\x90\xB6\x83" => "\xF0\x90\xB5\xA3", + "\xF0\x90\xB6\x84" => "\xF0\x90\xB5\xA4", + "\xF0\x90\xB6\x85" => "\xF0\x90\xB5\xA5", "\xE1\x83\x98" => "\xE1\xB2\x98", "\xE1\x83\x99" => "\xE1\xB2\x99", "\xE1\x83\x9A" => "\xE1\xB2\x9A", @@ -2278,6 +2329,7 @@ function utf8_strtoupper_maps() "\xE1\xB2\x86" => "\xD0\xAA", "\xE1\xB2\x87" => "\xD1\xA2", "\xE1\xB2\x88" => "\xEA\x99\x8A", + "\xE1\xB2\x8A" => "\xE1\xB2\x89", "\xE1\xB5\xB9" => "\xEA\x9D\xBD", "\xE1\xB5\xBD" => "\xE2\xB1\xA3", "\xE1\xB6\x8E" => "\xEA\x9F\x86", @@ -2892,9 +2944,11 @@ function utf8_strtoupper_maps() "\xEA\x9F\x83" => "\xEA\x9F\x82", "\xEA\x9F\x88" => "\xEA\x9F\x87", "\xEA\x9F\x8A" => "\xEA\x9F\x89", + "\xEA\x9F\x8D" => "\xEA\x9F\x8C", "\xEA\x9F\x91" => "\xEA\x9F\x90", "\xEA\x9F\x97" => "\xEA\x9F\x96", "\xEA\x9F\x99" => "\xEA\x9F\x98", + "\xEA\x9F\x9B" => "\xEA\x9F\x9A", "\xEA\x9F\xB6" => "\xEA\x9F\xB5", "\xEA\xAD\x93" => "\xEA\x9E\xB3", "\xEA\xAD\xB0" => "\xE1\x8E\xA0", diff --git a/Sources/Unicode/CombiningClasses.php b/Sources/Unicode/CombiningClasses.php index d6af747032..abfbed2472 100644 --- a/Sources/Unicode/CombiningClasses.php +++ b/Sources/Unicode/CombiningClasses.php @@ -5,10 +5,10 @@ * * @package SMF * @author Simple Machines https://www.simplemachines.org - * @copyright 2022 Simple Machines and individual contributors + * @copyright 2024 Simple Machines and individual contributors * @license https://www.simplemachines.org/about/smf/license.php BSD * - * @version 2.1.3 + * @version 2.1.5 */ if (!defined('SMF')) @@ -306,6 +306,7 @@ function utf8_combining_classes() "\xE0\xA1\x99" => 220, "\xE0\xA1\x9A" => 220, "\xE0\xA1\x9B" => 220, + "\xE0\xA2\x97" => 230, "\xE0\xA2\x98" => 230, "\xE0\xA2\x99" => 220, "\xE0\xA2\x9A" => 220, @@ -751,6 +752,11 @@ function utf8_combining_classes() "\xF0\x90\xB4\xA5" => 230, "\xF0\x90\xB4\xA6" => 230, "\xF0\x90\xB4\xA7" => 230, + "\xF0\x90\xB5\xA9" => 230, + "\xF0\x90\xB5\xAA" => 230, + "\xF0\x90\xB5\xAB" => 230, + "\xF0\x90\xB5\xAC" => 230, + "\xF0\x90\xB5\xAD" => 230, "\xF0\x90\xBA\xAB" => 230, "\xF0\x90\xBA\xAC" => 230, "\xF0\x90\xBB\xBD" => 220, @@ -803,6 +809,9 @@ function utf8_combining_classes() "\xF0\x91\x8D\xB2" => 230, "\xF0\x91\x8D\xB3" => 230, "\xF0\x91\x8D\xB4" => 230, + "\xF0\x91\x8F\x8E" => 9, + "\xF0\x91\x8F\x8F" => 9, + "\xF0\x91\x8F\x90" => 9, "\xF0\x91\x91\x82" => 9, "\xF0\x91\x91\x86" => 7, "\xF0\x91\x91\x9E" => 230, @@ -830,6 +839,7 @@ function utf8_combining_classes() "\xF0\x91\xB6\x97" => 9, "\xF0\x91\xBD\x81" => 9, "\xF0\x91\xBD\x82" => 9, + "\xF0\x96\x84\xAF" => 9, "\xF0\x96\xAB\xB0" => 1, "\xF0\x96\xAB\xB1" => 1, "\xF0\x96\xAB\xB2" => 1, @@ -933,6 +943,8 @@ function utf8_combining_classes() "\xF0\x9E\x93\xAD" => 232, "\xF0\x9E\x93\xAE" => 220, "\xF0\x9E\x93\xAF" => 230, + "\xF0\x9E\x97\xAE" => 230, + "\xF0\x9E\x97\xAF" => 220, "\xF0\x9E\xA3\x90" => 220, "\xF0\x9E\xA3\x91" => 220, "\xF0\x9E\xA3\x92" => 220, diff --git a/Sources/Unicode/Composition.php b/Sources/Unicode/Composition.php index 0bcf219ec3..0e1d376a32 100644 --- a/Sources/Unicode/Composition.php +++ b/Sources/Unicode/Composition.php @@ -5,10 +5,10 @@ * * @package SMF * @author Simple Machines https://www.simplemachines.org - * @copyright 2022 Simple Machines and individual contributors + * @copyright 2024 Simple Machines and individual contributors * @license https://www.simplemachines.org/about/smf/license.php BSD * - * @version 2.1.0 + * @version 2.1.5 */ if (!defined('SMF')) @@ -953,6 +953,8 @@ function utf8_compose_maps() "\xE3\x83\xB1\xE3\x82\x99" => "\xE3\x83\xB9", "\xE3\x83\xB2\xE3\x82\x99" => "\xE3\x83\xBA", "\xE3\x83\xBD\xE3\x82\x99" => "\xE3\x83\xBE", + "\xF0\x90\x97\x92\xCC\x87" => "\xF0\x90\x97\x89", + "\xF0\x90\x97\x9A\xCC\x87" => "\xF0\x90\x97\xA4", "\xF0\x91\x82\x99\xF0\x91\x82\xBA" => "\xF0\x91\x82\x9A", "\xF0\x91\x82\x9B\xF0\x91\x82\xBA" => "\xF0\x91\x82\x9C", "\xF0\x91\x82\xA5\xF0\x91\x82\xBA" => "\xF0\x91\x82\xAB", @@ -960,12 +962,30 @@ function utf8_compose_maps() "\xF0\x91\x84\xB2\xF0\x91\x84\xA7" => "\xF0\x91\x84\xAF", "\xF0\x91\x8D\x87\xF0\x91\x8C\xBE" => "\xF0\x91\x8D\x8B", "\xF0\x91\x8D\x87\xF0\x91\x8D\x97" => "\xF0\x91\x8D\x8C", + "\xF0\x91\x8E\x82\xF0\x91\x8F\x89" => "\xF0\x91\x8E\x83", + "\xF0\x91\x8E\x84\xF0\x91\x8E\xBB" => "\xF0\x91\x8E\x85", + "\xF0\x91\x8E\x8B\xF0\x91\x8F\x82" => "\xF0\x91\x8E\x8E", + "\xF0\x91\x8E\x90\xF0\x91\x8F\x89" => "\xF0\x91\x8E\x91", + "\xF0\x91\x8F\x82\xF0\x91\x8F\x82" => "\xF0\x91\x8F\x85", + "\xF0\x91\x8F\x82\xF0\x91\x8E\xB8" => "\xF0\x91\x8F\x87", + "\xF0\x91\x8F\x82\xF0\x91\x8F\x89" => "\xF0\x91\x8F\x88", "\xF0\x91\x92\xB9\xF0\x91\x92\xBA" => "\xF0\x91\x92\xBB", "\xF0\x91\x92\xB9\xF0\x91\x92\xB0" => "\xF0\x91\x92\xBC", "\xF0\x91\x92\xB9\xF0\x91\x92\xBD" => "\xF0\x91\x92\xBE", "\xF0\x91\x96\xB8\xF0\x91\x96\xAF" => "\xF0\x91\x96\xBA", "\xF0\x91\x96\xB9\xF0\x91\x96\xAF" => "\xF0\x91\x96\xBB", "\xF0\x91\xA4\xB5\xF0\x91\xA4\xB0" => "\xF0\x91\xA4\xB8", + "\xF0\x96\x84\x9E\xF0\x96\x84\x9E" => "\xF0\x96\x84\xA1", + "\xF0\x96\x84\x9E\xF0\x96\x84\xA9" => "\xF0\x96\x84\xA2", + "\xF0\x96\x84\x9E\xF0\x96\x84\x9F" => "\xF0\x96\x84\xA3", + "\xF0\x96\x84\xA9\xF0\x96\x84\x9F" => "\xF0\x96\x84\xA4", + "\xF0\x96\x84\x9E\xF0\x96\x84\xA0" => "\xF0\x96\x84\xA5", + "\xF0\x96\x84\xA1\xF0\x96\x84\x9F" => "\xF0\x96\x84\xA6", + "\xF0\x96\x84\xA2\xF0\x96\x84\x9F" => "\xF0\x96\x84\xA7", + "\xF0\x96\x84\xA1\xF0\x96\x84\xA0" => "\xF0\x96\x84\xA8", + "\xF0\x96\xB5\xA7\xF0\x96\xB5\xA7" => "\xF0\x96\xB5\xA8", + "\xF0\x96\xB5\xA3\xF0\x96\xB5\xA7" => "\xF0\x96\xB5\xA9", + "\xF0\x96\xB5\xA9\xF0\x96\xB5\xA7" => "\xF0\x96\xB5\xAA", ); } diff --git a/Sources/Unicode/DecompositionCanonical.php b/Sources/Unicode/DecompositionCanonical.php index 2f990e094b..3f4f2c54c7 100644 --- a/Sources/Unicode/DecompositionCanonical.php +++ b/Sources/Unicode/DecompositionCanonical.php @@ -5,10 +5,10 @@ * * @package SMF * @author Simple Machines https://www.simplemachines.org - * @copyright 2022 Simple Machines and individual contributors + * @copyright 2024 Simple Machines and individual contributors * @license https://www.simplemachines.org/about/smf/license.php BSD * - * @version 2.1.0 + * @version 2.1.5 */ if (!defined('SMF')) @@ -1518,6 +1518,8 @@ function utf8_normalize_d_maps() "\xEF\xAD\x8C" => "\xD7\x91\xD6\xBF", "\xEF\xAD\x8D" => "\xD7\x9B\xD6\xBF", "\xEF\xAD\x8E" => "\xD7\xA4\xD6\xBF", + "\xF0\x90\x97\x89" => "\xF0\x90\x97\x92\xCC\x87", + "\xF0\x90\x97\xA4" => "\xF0\x90\x97\x9A\xCC\x87", "\xF0\x91\x82\x9A" => "\xF0\x91\x82\x99\xF0\x91\x82\xBA", "\xF0\x91\x82\x9C" => "\xF0\x91\x82\x9B\xF0\x91\x82\xBA", "\xF0\x91\x82\xAB" => "\xF0\x91\x82\xA5\xF0\x91\x82\xBA", @@ -1525,12 +1527,30 @@ function utf8_normalize_d_maps() "\xF0\x91\x84\xAF" => "\xF0\x91\x84\xB2\xF0\x91\x84\xA7", "\xF0\x91\x8D\x8B" => "\xF0\x91\x8D\x87\xF0\x91\x8C\xBE", "\xF0\x91\x8D\x8C" => "\xF0\x91\x8D\x87\xF0\x91\x8D\x97", + "\xF0\x91\x8E\x83" => "\xF0\x91\x8E\x82\xF0\x91\x8F\x89", + "\xF0\x91\x8E\x85" => "\xF0\x91\x8E\x84\xF0\x91\x8E\xBB", + "\xF0\x91\x8E\x8E" => "\xF0\x91\x8E\x8B\xF0\x91\x8F\x82", + "\xF0\x91\x8E\x91" => "\xF0\x91\x8E\x90\xF0\x91\x8F\x89", + "\xF0\x91\x8F\x85" => "\xF0\x91\x8F\x82\xF0\x91\x8F\x82", + "\xF0\x91\x8F\x87" => "\xF0\x91\x8F\x82\xF0\x91\x8E\xB8", + "\xF0\x91\x8F\x88" => "\xF0\x91\x8F\x82\xF0\x91\x8F\x89", "\xF0\x91\x92\xBB" => "\xF0\x91\x92\xB9\xF0\x91\x92\xBA", "\xF0\x91\x92\xBC" => "\xF0\x91\x92\xB9\xF0\x91\x92\xB0", "\xF0\x91\x92\xBE" => "\xF0\x91\x92\xB9\xF0\x91\x92\xBD", "\xF0\x91\x96\xBA" => "\xF0\x91\x96\xB8\xF0\x91\x96\xAF", "\xF0\x91\x96\xBB" => "\xF0\x91\x96\xB9\xF0\x91\x96\xAF", "\xF0\x91\xA4\xB8" => "\xF0\x91\xA4\xB5\xF0\x91\xA4\xB0", + "\xF0\x96\x84\xA1" => "\xF0\x96\x84\x9E\xF0\x96\x84\x9E", + "\xF0\x96\x84\xA2" => "\xF0\x96\x84\x9E\xF0\x96\x84\xA9", + "\xF0\x96\x84\xA3" => "\xF0\x96\x84\x9E\xF0\x96\x84\x9F", + "\xF0\x96\x84\xA4" => "\xF0\x96\x84\xA9\xF0\x96\x84\x9F", + "\xF0\x96\x84\xA5" => "\xF0\x96\x84\x9E\xF0\x96\x84\xA0", + "\xF0\x96\x84\xA6" => "\xF0\x96\x84\x9E\xF0\x96\x84\x9E\xF0\x96\x84\x9F", + "\xF0\x96\x84\xA7" => "\xF0\x96\x84\x9E\xF0\x96\x84\xA9\xF0\x96\x84\x9F", + "\xF0\x96\x84\xA8" => "\xF0\x96\x84\x9E\xF0\x96\x84\x9E\xF0\x96\x84\xA0", + "\xF0\x96\xB5\xA8" => "\xF0\x96\xB5\xA7\xF0\x96\xB5\xA7", + "\xF0\x96\xB5\xA9" => "\xF0\x96\xB5\xA3\xF0\x96\xB5\xA7", + "\xF0\x96\xB5\xAA" => "\xF0\x96\xB5\xA3\xF0\x96\xB5\xA7\xF0\x96\xB5\xA7", "\xF0\x9D\x85\x9E" => "\xF0\x9D\x85\x97\xF0\x9D\x85\xA5", "\xF0\x9D\x85\x9F" => "\xF0\x9D\x85\x98\xF0\x9D\x85\xA5", "\xF0\x9D\x85\xA0" => "\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xAE", diff --git a/Sources/Unicode/DecompositionCompatibility.php b/Sources/Unicode/DecompositionCompatibility.php index ee4618a37f..73b9acce39 100644 --- a/Sources/Unicode/DecompositionCompatibility.php +++ b/Sources/Unicode/DecompositionCompatibility.php @@ -5,10 +5,10 @@ * * @package SMF * @author Simple Machines https://www.simplemachines.org - * @copyright 2022 Simple Machines and individual contributors + * @copyright 2024 Simple Machines and individual contributors * @license https://www.simplemachines.org/about/smf/license.php BSD * - * @version 2.1.3 + * @version 2.1.5 */ if (!defined('SMF')) @@ -2492,6 +2492,42 @@ function utf8_normalize_kd_maps() "\xF0\x90\x9E\xB8" => "\xC7\x82", "\xF0\x90\x9E\xB9" => "\xF0\x9D\xBC\x8A", "\xF0\x90\x9E\xBA" => "\xF0\x9D\xBC\x9E", + "\xF0\x9C\xB3\x96" => "\x41", + "\xF0\x9C\xB3\x97" => "\x42", + "\xF0\x9C\xB3\x98" => "\x43", + "\xF0\x9C\xB3\x99" => "\x44", + "\xF0\x9C\xB3\x9A" => "\x45", + "\xF0\x9C\xB3\x9B" => "\x46", + "\xF0\x9C\xB3\x9C" => "\x47", + "\xF0\x9C\xB3\x9D" => "\x48", + "\xF0\x9C\xB3\x9E" => "\x49", + "\xF0\x9C\xB3\x9F" => "\x4A", + "\xF0\x9C\xB3\xA0" => "\x4B", + "\xF0\x9C\xB3\xA1" => "\x4C", + "\xF0\x9C\xB3\xA2" => "\x4D", + "\xF0\x9C\xB3\xA3" => "\x4E", + "\xF0\x9C\xB3\xA4" => "\x4F", + "\xF0\x9C\xB3\xA5" => "\x50", + "\xF0\x9C\xB3\xA6" => "\x51", + "\xF0\x9C\xB3\xA7" => "\x52", + "\xF0\x9C\xB3\xA8" => "\x53", + "\xF0\x9C\xB3\xA9" => "\x54", + "\xF0\x9C\xB3\xAA" => "\x55", + "\xF0\x9C\xB3\xAB" => "\x56", + "\xF0\x9C\xB3\xAC" => "\x57", + "\xF0\x9C\xB3\xAD" => "\x58", + "\xF0\x9C\xB3\xAE" => "\x59", + "\xF0\x9C\xB3\xAF" => "\x5A", + "\xF0\x9C\xB3\xB0" => "\x30", + "\xF0\x9C\xB3\xB1" => "\x31", + "\xF0\x9C\xB3\xB2" => "\x32", + "\xF0\x9C\xB3\xB3" => "\x33", + "\xF0\x9C\xB3\xB4" => "\x34", + "\xF0\x9C\xB3\xB5" => "\x35", + "\xF0\x9C\xB3\xB6" => "\x36", + "\xF0\x9C\xB3\xB7" => "\x37", + "\xF0\x9C\xB3\xB8" => "\x38", + "\xF0\x9C\xB3\xB9" => "\x39", "\xF0\x9D\x90\x80" => "\x41", "\xF0\x9D\x90\x81" => "\x42", "\xF0\x9D\x90\x82" => "\x43", diff --git a/Sources/Unicode/Idna.php b/Sources/Unicode/Idna.php index d7dd0a92e8..f21f510e30 100644 --- a/Sources/Unicode/Idna.php +++ b/Sources/Unicode/Idna.php @@ -51,10 +51,15 @@ function idna_maps() "\x58" => "\x78", "\x59" => "\x79", "\x5A" => "\x7A", + "\xC2\xA0" => "\x20", + "\xC2\xA8" => "\x20\xCC\x88", "\xC2\xAA" => "\x61", + "\xC2\xAF" => "\x20\xCC\x84", "\xC2\xB2" => "\x32", "\xC2\xB3" => "\x33", + "\xC2\xB4" => "\x20\xCC\x81", "\xC2\xB5" => "\xCE\xBC", + "\xC2\xB8" => "\x20\xCC\xA7", "\xC2\xB9" => "\x31", "\xC2\xBA" => "\x6F", "\xC2\xBC" => "\x31\xE2\x81\x84\x34", @@ -277,6 +282,12 @@ function idna_maps() "\xCA\xB6" => "\xCA\x81", "\xCA\xB7" => "\x77", "\xCA\xB8" => "\x79", + "\xCB\x98" => "\x20\xCC\x86", + "\xCB\x99" => "\x20\xCC\x87", + "\xCB\x9A" => "\x20\xCC\x8A", + "\xCB\x9B" => "\x20\xCC\xA8", + "\xCB\x9C" => "\x20\xCC\x83", + "\xCB\x9D" => "\x20\xCC\x8B", "\xCB\xA0" => "\xC9\xA3", "\xCB\xA1" => "\x6C", "\xCB\xA2" => "\x73", @@ -291,7 +302,11 @@ function idna_maps() "\xCD\xB2" => "\xCD\xB3", "\xCD\xB4" => "\xCA\xB9", "\xCD\xB6" => "\xCD\xB7", + "\xCD\xBA" => "\x20\xCE\xB9", + "\xCD\xBE" => "\x3B", "\xCD\xBF" => "\xCF\xB3", + "\xCE\x84" => "\x20\xCC\x81", + "\xCE\x85" => "\x20\xCC\x88\xCC\x81", "\xCE\x86" => "\xCE\xAC", "\xCE\x87" => "\xC2\xB7", "\xCE\x88" => "\xCE\xAD", @@ -449,6 +464,7 @@ function idna_maps() "\xD2\xBA" => "\xD2\xBB", "\xD2\xBC" => "\xD2\xBD", "\xD2\xBE" => "\xD2\xBF", + "\xD3\x80" => "\xD3\x8F", "\xD3\x81" => "\xD3\x82", "\xD3\x83" => "\xD3\x84", "\xD3\x85" => "\xD3\x86", @@ -590,6 +606,44 @@ function idna_maps() "\xE0\xBE\xA7" => "\xE0\xBE\xA6\xE0\xBE\xB7", "\xE0\xBE\xAC" => "\xE0\xBE\xAB\xE0\xBE\xB7", "\xE0\xBE\xB9" => "\xE0\xBE\x90\xE0\xBE\xB5", + "\xE1\x82\xA0" => "\xE2\xB4\x80", + "\xE1\x82\xA1" => "\xE2\xB4\x81", + "\xE1\x82\xA2" => "\xE2\xB4\x82", + "\xE1\x82\xA3" => "\xE2\xB4\x83", + "\xE1\x82\xA4" => "\xE2\xB4\x84", + "\xE1\x82\xA5" => "\xE2\xB4\x85", + "\xE1\x82\xA6" => "\xE2\xB4\x86", + "\xE1\x82\xA7" => "\xE2\xB4\x87", + "\xE1\x82\xA8" => "\xE2\xB4\x88", + "\xE1\x82\xA9" => "\xE2\xB4\x89", + "\xE1\x82\xAA" => "\xE2\xB4\x8A", + "\xE1\x82\xAB" => "\xE2\xB4\x8B", + "\xE1\x82\xAC" => "\xE2\xB4\x8C", + "\xE1\x82\xAD" => "\xE2\xB4\x8D", + "\xE1\x82\xAE" => "\xE2\xB4\x8E", + "\xE1\x82\xAF" => "\xE2\xB4\x8F", + "\xE1\x82\xB0" => "\xE2\xB4\x90", + "\xE1\x82\xB1" => "\xE2\xB4\x91", + "\xE1\x82\xB2" => "\xE2\xB4\x92", + "\xE1\x82\xB3" => "\xE2\xB4\x93", + "\xE1\x82\xB4" => "\xE2\xB4\x94", + "\xE1\x82\xB5" => "\xE2\xB4\x95", + "\xE1\x82\xB6" => "\xE2\xB4\x96", + "\xE1\x82\xB7" => "\xE2\xB4\x97", + "\xE1\x82\xB8" => "\xE2\xB4\x98", + "\xE1\x82\xB9" => "\xE2\xB4\x99", + "\xE1\x82\xBA" => "\xE2\xB4\x9A", + "\xE1\x82\xBB" => "\xE2\xB4\x9B", + "\xE1\x82\xBC" => "\xE2\xB4\x9C", + "\xE1\x82\xBD" => "\xE2\xB4\x9D", + "\xE1\x82\xBE" => "\xE2\xB4\x9E", + "\xE1\x82\xBF" => "\xE2\xB4\x9F", + "\xE1\x83\x80" => "\xE2\xB4\xA0", + "\xE1\x83\x81" => "\xE2\xB4\xA1", + "\xE1\x83\x82" => "\xE2\xB4\xA2", + "\xE1\x83\x83" => "\xE2\xB4\xA3", + "\xE1\x83\x84" => "\xE2\xB4\xA4", + "\xE1\x83\x85" => "\xE2\xB4\xA5", "\xE1\x83\x87" => "\xE2\xB4\xA7", "\xE1\x83\x8D" => "\xE2\xB4\xAD", "\xE1\x83\xBC" => "\xE1\x83\x9C", @@ -608,6 +662,7 @@ function idna_maps() "\xE1\xB2\x86" => "\xD1\x8A", "\xE1\xB2\x87" => "\xD1\xA3", "\xE1\xB2\x88" => "\xEA\x99\x8B", + "\xE1\xB2\x89" => "\xE1\xB2\x8A", "\xE1\xB2\x90" => "\xE1\x83\x90", "\xE1\xB2\x91" => "\xE1\x83\x91", "\xE1\xB2\x92" => "\xE1\x83\x92", @@ -990,7 +1045,11 @@ function idna_maps() "\xE1\xBE\xBA" => "\xE1\xBD\xB0", "\xE1\xBE\xBB" => "\xCE\xAC", "\xE1\xBE\xBC" => "\xCE\xB1\xCE\xB9", + "\xE1\xBE\xBD" => "\x20\xCC\x93", "\xE1\xBE\xBE" => "\xCE\xB9", + "\xE1\xBE\xBF" => "\x20\xCC\x93", + "\xE1\xBF\x80" => "\x20\xCD\x82", + "\xE1\xBF\x81" => "\x20\xCC\x88\xCD\x82", "\xE1\xBF\x82" => "\xE1\xBD\xB4\xCE\xB9", "\xE1\xBF\x83" => "\xCE\xB7\xCE\xB9", "\xE1\xBF\x84" => "\xCE\xAE\xCE\xB9", @@ -1000,17 +1059,26 @@ function idna_maps() "\xE1\xBF\x8A" => "\xE1\xBD\xB4", "\xE1\xBF\x8B" => "\xCE\xAE", "\xE1\xBF\x8C" => "\xCE\xB7\xCE\xB9", + "\xE1\xBF\x8D" => "\x20\xCC\x93\xCC\x80", + "\xE1\xBF\x8E" => "\x20\xCC\x93\xCC\x81", + "\xE1\xBF\x8F" => "\x20\xCC\x93\xCD\x82", "\xE1\xBF\x93" => "\xCE\x90", "\xE1\xBF\x98" => "\xE1\xBF\x90", "\xE1\xBF\x99" => "\xE1\xBF\x91", "\xE1\xBF\x9A" => "\xE1\xBD\xB6", "\xE1\xBF\x9B" => "\xCE\xAF", + "\xE1\xBF\x9D" => "\x20\xCC\x94\xCC\x80", + "\xE1\xBF\x9E" => "\x20\xCC\x94\xCC\x81", + "\xE1\xBF\x9F" => "\x20\xCC\x94\xCD\x82", "\xE1\xBF\xA3" => "\xCE\xB0", "\xE1\xBF\xA8" => "\xE1\xBF\xA0", "\xE1\xBF\xA9" => "\xE1\xBF\xA1", "\xE1\xBF\xAA" => "\xE1\xBD\xBA", "\xE1\xBF\xAB" => "\xCF\x8D", "\xE1\xBF\xAC" => "\xE1\xBF\xA5", + "\xE1\xBF\xAD" => "\x20\xCC\x88\xCC\x80", + "\xE1\xBF\xAE" => "\x20\xCC\x88\xCC\x81", + "\xE1\xBF\xAF" => "\x60", "\xE1\xBF\xB2" => "\xE1\xBD\xBC\xCE\xB9", "\xE1\xBF\xB3" => "\xCF\x89\xCE\xB9", "\xE1\xBF\xB4" => "\xCF\x8E\xCE\xB9", @@ -1020,12 +1088,33 @@ function idna_maps() "\xE1\xBF\xBA" => "\xE1\xBD\xBC", "\xE1\xBF\xBB" => "\xCF\x8E", "\xE1\xBF\xBC" => "\xCF\x89\xCE\xB9", + "\xE1\xBF\xBD" => "\x20\xCC\x81", + "\xE1\xBF\xBE" => "\x20\xCC\x94", + "\xE2\x80\x80" => "\x20", + "\xE2\x80\x81" => "\x20", + "\xE2\x80\x82" => "\x20", + "\xE2\x80\x83" => "\x20", + "\xE2\x80\x84" => "\x20", + "\xE2\x80\x85" => "\x20", + "\xE2\x80\x86" => "\x20", + "\xE2\x80\x87" => "\x20", + "\xE2\x80\x88" => "\x20", + "\xE2\x80\x89" => "\x20", + "\xE2\x80\x8A" => "\x20", "\xE2\x80\x91" => "\xE2\x80\x90", + "\xE2\x80\x97" => "\x20\xCC\xB3", + "\xE2\x80\xAF" => "\x20", "\xE2\x80\xB3" => "\xE2\x80\xB2\xE2\x80\xB2", "\xE2\x80\xB4" => "\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2", "\xE2\x80\xB6" => "\xE2\x80\xB5\xE2\x80\xB5", "\xE2\x80\xB7" => "\xE2\x80\xB5\xE2\x80\xB5\xE2\x80\xB5", + "\xE2\x80\xBC" => "\x21\x21", + "\xE2\x80\xBE" => "\x20\xCC\x85", + "\xE2\x81\x87" => "\x3F\x3F", + "\xE2\x81\x88" => "\x3F\x21", + "\xE2\x81\x89" => "\x21\x3F", "\xE2\x81\x97" => "\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2\xE2\x80\xB2", + "\xE2\x81\x9F" => "\x20", "\xE2\x81\xB0" => "\x30", "\xE2\x81\xB1" => "\x69", "\xE2\x81\xB4" => "\x34", @@ -1034,7 +1123,11 @@ function idna_maps() "\xE2\x81\xB7" => "\x37", "\xE2\x81\xB8" => "\x38", "\xE2\x81\xB9" => "\x39", + "\xE2\x81\xBA" => "\x2B", "\xE2\x81\xBB" => "\xE2\x88\x92", + "\xE2\x81\xBC" => "\x3D", + "\xE2\x81\xBD" => "\x28", + "\xE2\x81\xBE" => "\x29", "\xE2\x81\xBF" => "\x6E", "\xE2\x82\x80" => "\x30", "\xE2\x82\x81" => "\x31", @@ -1046,7 +1139,11 @@ function idna_maps() "\xE2\x82\x87" => "\x37", "\xE2\x82\x88" => "\x38", "\xE2\x82\x89" => "\x39", + "\xE2\x82\x8A" => "\x2B", "\xE2\x82\x8B" => "\xE2\x88\x92", + "\xE2\x82\x8C" => "\x3D", + "\xE2\x82\x8D" => "\x28", + "\xE2\x82\x8E" => "\x29", "\xE2\x82\x90" => "\x61", "\xE2\x82\x91" => "\x65", "\xE2\x82\x92" => "\x6F", @@ -1061,8 +1158,12 @@ function idna_maps() "\xE2\x82\x9B" => "\x73", "\xE2\x82\x9C" => "\x74", "\xE2\x82\xA8" => "\x72\x73", + "\xE2\x84\x80" => "\x61\x2F\x63", + "\xE2\x84\x81" => "\x61\x2F\x73", "\xE2\x84\x82" => "\x63", "\xE2\x84\x83" => "\xC2\xB0\x63", + "\xE2\x84\x85" => "\x63\x2F\x6F", + "\xE2\x84\x86" => "\x63\x2F\x75", "\xE2\x84\x87" => "\xC9\x9B", "\xE2\x84\x89" => "\xC2\xB0\x66", "\xE2\x84\x8A" => "\x67", @@ -1095,6 +1196,7 @@ function idna_maps() "\xE2\x84\xAF" => "\x65", "\xE2\x84\xB0" => "\x65", "\xE2\x84\xB1" => "\x66", + "\xE2\x84\xB2" => "\xE2\x85\x8E", "\xE2\x84\xB3" => "\x6D", "\xE2\x84\xB4" => "\x6F", "\xE2\x84\xB5" => "\xD7\x90", @@ -1161,6 +1263,7 @@ function idna_maps() "\xE2\x85\xBD" => "\x63", "\xE2\x85\xBE" => "\x64", "\xE2\x85\xBF" => "\x6D", + "\xE2\x86\x83" => "\xE2\x86\x84", "\xE2\x86\x89" => "\x30\xE2\x81\x84\x33", "\xE2\x88\xAC" => "\xE2\x88\xAB\xE2\x88\xAB", "\xE2\x88\xAD" => "\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB", @@ -1188,6 +1291,52 @@ function idna_maps() "\xE2\x91\xB1" => "\x31\x38", "\xE2\x91\xB2" => "\x31\x39", "\xE2\x91\xB3" => "\x32\x30", + "\xE2\x91\xB4" => "\x28\x31\x29", + "\xE2\x91\xB5" => "\x28\x32\x29", + "\xE2\x91\xB6" => "\x28\x33\x29", + "\xE2\x91\xB7" => "\x28\x34\x29", + "\xE2\x91\xB8" => "\x28\x35\x29", + "\xE2\x91\xB9" => "\x28\x36\x29", + "\xE2\x91\xBA" => "\x28\x37\x29", + "\xE2\x91\xBB" => "\x28\x38\x29", + "\xE2\x91\xBC" => "\x28\x39\x29", + "\xE2\x91\xBD" => "\x28\x31\x30\x29", + "\xE2\x91\xBE" => "\x28\x31\x31\x29", + "\xE2\x91\xBF" => "\x28\x31\x32\x29", + "\xE2\x92\x80" => "\x28\x31\x33\x29", + "\xE2\x92\x81" => "\x28\x31\x34\x29", + "\xE2\x92\x82" => "\x28\x31\x35\x29", + "\xE2\x92\x83" => "\x28\x31\x36\x29", + "\xE2\x92\x84" => "\x28\x31\x37\x29", + "\xE2\x92\x85" => "\x28\x31\x38\x29", + "\xE2\x92\x86" => "\x28\x31\x39\x29", + "\xE2\x92\x87" => "\x28\x32\x30\x29", + "\xE2\x92\x9C" => "\x28\x61\x29", + "\xE2\x92\x9D" => "\x28\x62\x29", + "\xE2\x92\x9E" => "\x28\x63\x29", + "\xE2\x92\x9F" => "\x28\x64\x29", + "\xE2\x92\xA0" => "\x28\x65\x29", + "\xE2\x92\xA1" => "\x28\x66\x29", + "\xE2\x92\xA2" => "\x28\x67\x29", + "\xE2\x92\xA3" => "\x28\x68\x29", + "\xE2\x92\xA4" => "\x28\x69\x29", + "\xE2\x92\xA5" => "\x28\x6A\x29", + "\xE2\x92\xA6" => "\x28\x6B\x29", + "\xE2\x92\xA7" => "\x28\x6C\x29", + "\xE2\x92\xA8" => "\x28\x6D\x29", + "\xE2\x92\xA9" => "\x28\x6E\x29", + "\xE2\x92\xAA" => "\x28\x6F\x29", + "\xE2\x92\xAB" => "\x28\x70\x29", + "\xE2\x92\xAC" => "\x28\x71\x29", + "\xE2\x92\xAD" => "\x28\x72\x29", + "\xE2\x92\xAE" => "\x28\x73\x29", + "\xE2\x92\xAF" => "\x28\x74\x29", + "\xE2\x92\xB0" => "\x28\x75\x29", + "\xE2\x92\xB1" => "\x28\x76\x29", + "\xE2\x92\xB2" => "\x28\x77\x29", + "\xE2\x92\xB3" => "\x28\x78\x29", + "\xE2\x92\xB4" => "\x28\x79\x29", + "\xE2\x92\xB5" => "\x28\x7A\x29", "\xE2\x92\xB6" => "\x61", "\xE2\x92\xB7" => "\x62", "\xE2\x92\xB8" => "\x63", @@ -1242,6 +1391,9 @@ function idna_maps() "\xE2\x93\xA9" => "\x7A", "\xE2\x93\xAA" => "\x30", "\xE2\xA8\x8C" => "\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB\xE2\x88\xAB", + "\xE2\xA9\xB4" => "\x3A\x3A\x3D", + "\xE2\xA9\xB5" => "\x3D\x3D", + "\xE2\xA9\xB6" => "\x3D\x3D\x3D", "\xE2\xAB\x9C" => "\xE2\xAB\x9D\xCC\xB8", "\xE2\xB0\x80" => "\xE2\xB0\xB0", "\xE2\xB0\x81" => "\xE2\xB0\xB1", @@ -1578,11 +1730,14 @@ function idna_maps() "\xE2\xBF\x93" => "\xE9\xBE\x8D", "\xE2\xBF\x94" => "\xE9\xBE\x9C", "\xE2\xBF\x95" => "\xE9\xBE\xA0", + "\xE3\x80\x80" => "\x20", "\xE3\x80\x82" => "\x2E", "\xE3\x80\xB6" => "\xE3\x80\x92", "\xE3\x80\xB8" => "\xE5\x8D\x81", "\xE3\x80\xB9" => "\xE5\x8D\x84", "\xE3\x80\xBA" => "\xE5\x8D\x85", + "\xE3\x82\x9B" => "\x20\xE3\x82\x99", + "\xE3\x82\x9C" => "\x20\xE3\x82\x9A", "\xE3\x82\x9F" => "\xE3\x82\x88\xE3\x82\x8A", "\xE3\x83\xBF" => "\xE3\x82\xB3\xE3\x83\x88", "\xE3\x84\xB1" => "\xE1\x84\x80", @@ -1692,6 +1847,73 @@ function idna_maps() "\xE3\x86\x9D" => "\xE5\xA4\xA9", "\xE3\x86\x9E" => "\xE5\x9C\xB0", "\xE3\x86\x9F" => "\xE4\xBA\xBA", + "\xE3\x88\x80" => "\x28\xE1\x84\x80\x29", + "\xE3\x88\x81" => "\x28\xE1\x84\x82\x29", + "\xE3\x88\x82" => "\x28\xE1\x84\x83\x29", + "\xE3\x88\x83" => "\x28\xE1\x84\x85\x29", + "\xE3\x88\x84" => "\x28\xE1\x84\x86\x29", + "\xE3\x88\x85" => "\x28\xE1\x84\x87\x29", + "\xE3\x88\x86" => "\x28\xE1\x84\x89\x29", + "\xE3\x88\x87" => "\x28\xE1\x84\x8B\x29", + "\xE3\x88\x88" => "\x28\xE1\x84\x8C\x29", + "\xE3\x88\x89" => "\x28\xE1\x84\x8E\x29", + "\xE3\x88\x8A" => "\x28\xE1\x84\x8F\x29", + "\xE3\x88\x8B" => "\x28\xE1\x84\x90\x29", + "\xE3\x88\x8C" => "\x28\xE1\x84\x91\x29", + "\xE3\x88\x8D" => "\x28\xE1\x84\x92\x29", + "\xE3\x88\x8E" => "\x28\xEA\xB0\x80\x29", + "\xE3\x88\x8F" => "\x28\xEB\x82\x98\x29", + "\xE3\x88\x90" => "\x28\xEB\x8B\xA4\x29", + "\xE3\x88\x91" => "\x28\xEB\x9D\xBC\x29", + "\xE3\x88\x92" => "\x28\xEB\xA7\x88\x29", + "\xE3\x88\x93" => "\x28\xEB\xB0\x94\x29", + "\xE3\x88\x94" => "\x28\xEC\x82\xAC\x29", + "\xE3\x88\x95" => "\x28\xEC\x95\x84\x29", + "\xE3\x88\x96" => "\x28\xEC\x9E\x90\x29", + "\xE3\x88\x97" => "\x28\xEC\xB0\xA8\x29", + "\xE3\x88\x98" => "\x28\xEC\xB9\xB4\x29", + "\xE3\x88\x99" => "\x28\xED\x83\x80\x29", + "\xE3\x88\x9A" => "\x28\xED\x8C\x8C\x29", + "\xE3\x88\x9B" => "\x28\xED\x95\x98\x29", + "\xE3\x88\x9C" => "\x28\xEC\xA3\xBC\x29", + "\xE3\x88\x9D" => "\x28\xEC\x98\xA4\xEC\xA0\x84\x29", + "\xE3\x88\x9E" => "\x28\xEC\x98\xA4\xED\x9B\x84\x29", + "\xE3\x88\xA0" => "\x28\xE4\xB8\x80\x29", + "\xE3\x88\xA1" => "\x28\xE4\xBA\x8C\x29", + "\xE3\x88\xA2" => "\x28\xE4\xB8\x89\x29", + "\xE3\x88\xA3" => "\x28\xE5\x9B\x9B\x29", + "\xE3\x88\xA4" => "\x28\xE4\xBA\x94\x29", + "\xE3\x88\xA5" => "\x28\xE5\x85\xAD\x29", + "\xE3\x88\xA6" => "\x28\xE4\xB8\x83\x29", + "\xE3\x88\xA7" => "\x28\xE5\x85\xAB\x29", + "\xE3\x88\xA8" => "\x28\xE4\xB9\x9D\x29", + "\xE3\x88\xA9" => "\x28\xE5\x8D\x81\x29", + "\xE3\x88\xAA" => "\x28\xE6\x9C\x88\x29", + "\xE3\x88\xAB" => "\x28\xE7\x81\xAB\x29", + "\xE3\x88\xAC" => "\x28\xE6\xB0\xB4\x29", + "\xE3\x88\xAD" => "\x28\xE6\x9C\xA8\x29", + "\xE3\x88\xAE" => "\x28\xE9\x87\x91\x29", + "\xE3\x88\xAF" => "\x28\xE5\x9C\x9F\x29", + "\xE3\x88\xB0" => "\x28\xE6\x97\xA5\x29", + "\xE3\x88\xB1" => "\x28\xE6\xA0\xAA\x29", + "\xE3\x88\xB2" => "\x28\xE6\x9C\x89\x29", + "\xE3\x88\xB3" => "\x28\xE7\xA4\xBE\x29", + "\xE3\x88\xB4" => "\x28\xE5\x90\x8D\x29", + "\xE3\x88\xB5" => "\x28\xE7\x89\xB9\x29", + "\xE3\x88\xB6" => "\x28\xE8\xB2\xA1\x29", + "\xE3\x88\xB7" => "\x28\xE7\xA5\x9D\x29", + "\xE3\x88\xB8" => "\x28\xE5\x8A\xB4\x29", + "\xE3\x88\xB9" => "\x28\xE4\xBB\xA3\x29", + "\xE3\x88\xBA" => "\x28\xE5\x91\xBC\x29", + "\xE3\x88\xBB" => "\x28\xE5\xAD\xA6\x29", + "\xE3\x88\xBC" => "\x28\xE7\x9B\xA3\x29", + "\xE3\x88\xBD" => "\x28\xE4\xBC\x81\x29", + "\xE3\x88\xBE" => "\x28\xE8\xB3\x87\x29", + "\xE3\x88\xBF" => "\x28\xE5\x8D\x94\x29", + "\xE3\x89\x80" => "\x28\xE7\xA5\xAD\x29", + "\xE3\x89\x81" => "\x28\xE4\xBC\x91\x29", + "\xE3\x89\x82" => "\x28\xE8\x87\xAA\x29", + "\xE3\x89\x83" => "\x28\xE8\x87\xB3\x29", "\xE3\x89\x84" => "\xE5\x95\x8F", "\xE3\x89\x85" => "\xE5\xB9\xBC", "\xE3\x89\x86" => "\xE6\x96\x87", @@ -2246,9 +2468,13 @@ function idna_maps() "\xEA\x9F\x86" => "\xE1\xB6\x8E", "\xEA\x9F\x87" => "\xEA\x9F\x88", "\xEA\x9F\x89" => "\xEA\x9F\x8A", + "\xEA\x9F\x8B" => "\xC9\xA4", + "\xEA\x9F\x8C" => "\xEA\x9F\x8D", "\xEA\x9F\x90" => "\xEA\x9F\x91", "\xEA\x9F\x96" => "\xEA\x9F\x97", "\xEA\x9F\x98" => "\xEA\x9F\x99", + "\xEA\x9F\x9A" => "\xEA\x9F\x9B", + "\xEA\x9F\x9C" => "\xC6\x9B", "\xEA\x9F\xB2" => "\x63", "\xEA\x9F\xB3" => "\x66", "\xEA\x9F\xB4" => "\x71", @@ -2823,6 +3049,7 @@ function idna_maps() "\xEF\xAC\xA6" => "\xD7\x9D", "\xEF\xAC\xA7" => "\xD7\xA8", "\xEF\xAC\xA8" => "\xD7\xAA", + "\xEF\xAC\xA9" => "\x2B", "\xEF\xAC\xAA" => "\xD7\xA9\xD7\x81", "\xEF\xAC\xAB" => "\xD7\xA9\xD7\x82", "\xEF\xAC\xAC" => "\xD7\xA9\xD6\xBC\xD7\x81", @@ -3093,6 +3320,12 @@ function idna_maps() "\xEF\xB1\x9B" => "\xD8\xB0\xD9\xB0", "\xEF\xB1\x9C" => "\xD8\xB1\xD9\xB0", "\xEF\xB1\x9D" => "\xD9\x89\xD9\xB0", + "\xEF\xB1\x9E" => "\x20\xD9\x8C\xD9\x91", + "\xEF\xB1\x9F" => "\x20\xD9\x8D\xD9\x91", + "\xEF\xB1\xA0" => "\x20\xD9\x8E\xD9\x91", + "\xEF\xB1\xA1" => "\x20\xD9\x8F\xD9\x91", + "\xEF\xB1\xA2" => "\x20\xD9\x90\xD9\x91", + "\xEF\xB1\xA3" => "\x20\xD9\x91\xD9\xB0", "\xEF\xB1\xA4" => "\xD8\xA6\xD8\xB1", "\xEF\xB1\xA5" => "\xD8\xA6\xD8\xB2", "\xEF\xB1\xA6" => "\xD8\xA6\xD9\x85", @@ -3439,12 +3672,25 @@ function idna_maps() "\xEF\xB7\xB7" => "\xD8\xB9\xD9\x84\xD9\x8A\xD9\x87", "\xEF\xB7\xB8" => "\xD9\x88\xD8\xB3\xD9\x84\xD9\x85", "\xEF\xB7\xB9" => "\xD8\xB5\xD9\x84\xD9\x89", + "\xEF\xB7\xBA" => "\xD8\xB5\xD9\x84\xD9\x89\x20\xD8\xA7\xD9\x84\xD9\x84\xD9\x87\x20\xD8\xB9\xD9\x84\xD9\x8A\xD9\x87\x20\xD9\x88\xD8\xB3\xD9\x84\xD9\x85", + "\xEF\xB7\xBB" => "\xD8\xAC\xD9\x84\x20\xD8\xAC\xD9\x84\xD8\xA7\xD9\x84\xD9\x87", "\xEF\xB7\xBC" => "\xD8\xB1\xDB\x8C\xD8\xA7\xD9\x84", + "\xEF\xB8\x90" => "\x2C", "\xEF\xB8\x91" => "\xE3\x80\x81", + "\xEF\xB8\x93" => "\x3A", + "\xEF\xB8\x94" => "\x3B", + "\xEF\xB8\x95" => "\x21", + "\xEF\xB8\x96" => "\x3F", "\xEF\xB8\x97" => "\xE3\x80\x96", "\xEF\xB8\x98" => "\xE3\x80\x97", "\xEF\xB8\xB1" => "\xE2\x80\x94", "\xEF\xB8\xB2" => "\xE2\x80\x93", + "\xEF\xB8\xB3" => "\x5F", + "\xEF\xB8\xB4" => "\x5F", + "\xEF\xB8\xB5" => "\x28", + "\xEF\xB8\xB6" => "\x29", + "\xEF\xB8\xB7" => "\x7B", + "\xEF\xB8\xB8" => "\x7D", "\xEF\xB8\xB9" => "\xE3\x80\x94", "\xEF\xB8\xBA" => "\xE3\x80\x95", "\xEF\xB8\xBB" => "\xE3\x80\x90", @@ -3457,16 +3703,53 @@ function idna_maps() "\xEF\xB9\x82" => "\xE3\x80\x8D", "\xEF\xB9\x83" => "\xE3\x80\x8E", "\xEF\xB9\x84" => "\xE3\x80\x8F", + "\xEF\xB9\x87" => "\x5B", + "\xEF\xB9\x88" => "\x5D", + "\xEF\xB9\x89" => "\x20\xCC\x85", + "\xEF\xB9\x8A" => "\x20\xCC\x85", + "\xEF\xB9\x8B" => "\x20\xCC\x85", + "\xEF\xB9\x8C" => "\x20\xCC\x85", + "\xEF\xB9\x8D" => "\x5F", + "\xEF\xB9\x8E" => "\x5F", + "\xEF\xB9\x8F" => "\x5F", + "\xEF\xB9\x90" => "\x2C", "\xEF\xB9\x91" => "\xE3\x80\x81", + "\xEF\xB9\x94" => "\x3B", + "\xEF\xB9\x95" => "\x3A", + "\xEF\xB9\x96" => "\x3F", + "\xEF\xB9\x97" => "\x21", "\xEF\xB9\x98" => "\xE2\x80\x94", + "\xEF\xB9\x99" => "\x28", + "\xEF\xB9\x9A" => "\x29", + "\xEF\xB9\x9B" => "\x7B", + "\xEF\xB9\x9C" => "\x7D", "\xEF\xB9\x9D" => "\xE3\x80\x94", "\xEF\xB9\x9E" => "\xE3\x80\x95", + "\xEF\xB9\x9F" => "\x23", + "\xEF\xB9\xA0" => "\x26", + "\xEF\xB9\xA1" => "\x2A", + "\xEF\xB9\xA2" => "\x2B", "\xEF\xB9\xA3" => "\x2D", + "\xEF\xB9\xA4" => "\x3C", + "\xEF\xB9\xA5" => "\x3E", + "\xEF\xB9\xA6" => "\x3D", + "\xEF\xB9\xA8" => "\x5C", + "\xEF\xB9\xA9" => "\x24", + "\xEF\xB9\xAA" => "\x25", + "\xEF\xB9\xAB" => "\x40", + "\xEF\xB9\xB0" => "\x20\xD9\x8B", "\xEF\xB9\xB1" => "\xD9\x80\xD9\x8B", + "\xEF\xB9\xB2" => "\x20\xD9\x8C", + "\xEF\xB9\xB4" => "\x20\xD9\x8D", + "\xEF\xB9\xB6" => "\x20\xD9\x8E", "\xEF\xB9\xB7" => "\xD9\x80\xD9\x8E", + "\xEF\xB9\xB8" => "\x20\xD9\x8F", "\xEF\xB9\xB9" => "\xD9\x80\xD9\x8F", + "\xEF\xB9\xBA" => "\x20\xD9\x90", "\xEF\xB9\xBB" => "\xD9\x80\xD9\x90", + "\xEF\xB9\xBC" => "\x20\xD9\x91", "\xEF\xB9\xBD" => "\xD9\x80\xD9\x91", + "\xEF\xB9\xBE" => "\x20\xD9\x92", "\xEF\xB9\xBF" => "\xD9\x80\xD9\x92", "\xEF\xBA\x80" => "\xD8\xA1", "\xEF\xBA\x81" => "\xD8\xA2", @@ -3593,8 +3876,21 @@ function idna_maps() "\xEF\xBB\xBA" => "\xD9\x84\xD8\xA5", "\xEF\xBB\xBB" => "\xD9\x84\xD8\xA7", "\xEF\xBB\xBC" => "\xD9\x84\xD8\xA7", + "\xEF\xBC\x81" => "\x21", + "\xEF\xBC\x82" => "\x22", + "\xEF\xBC\x83" => "\x23", + "\xEF\xBC\x84" => "\x24", + "\xEF\xBC\x85" => "\x25", + "\xEF\xBC\x86" => "\x26", + "\xEF\xBC\x87" => "\x27", + "\xEF\xBC\x88" => "\x28", + "\xEF\xBC\x89" => "\x29", + "\xEF\xBC\x8A" => "\x2A", + "\xEF\xBC\x8B" => "\x2B", + "\xEF\xBC\x8C" => "\x2C", "\xEF\xBC\x8D" => "\x2D", "\xEF\xBC\x8E" => "\x2E", + "\xEF\xBC\x8F" => "\x2F", "\xEF\xBC\x90" => "\x30", "\xEF\xBC\x91" => "\x31", "\xEF\xBC\x92" => "\x32", @@ -3605,12 +3901,19 @@ function idna_maps() "\xEF\xBC\x97" => "\x37", "\xEF\xBC\x98" => "\x38", "\xEF\xBC\x99" => "\x39", - "\xEF\xBC\xA1" => "\x61", - "\xEF\xBC\xA2" => "\x62", - "\xEF\xBC\xA3" => "\x63", - "\xEF\xBC\xA4" => "\x64", - "\xEF\xBC\xA5" => "\x65", - "\xEF\xBC\xA6" => "\x66", + "\xEF\xBC\x9A" => "\x3A", + "\xEF\xBC\x9B" => "\x3B", + "\xEF\xBC\x9C" => "\x3C", + "\xEF\xBC\x9D" => "\x3D", + "\xEF\xBC\x9E" => "\x3E", + "\xEF\xBC\x9F" => "\x3F", + "\xEF\xBC\xA0" => "\x40", + "\xEF\xBC\xA1" => "\x61", + "\xEF\xBC\xA2" => "\x62", + "\xEF\xBC\xA3" => "\x63", + "\xEF\xBC\xA4" => "\x64", + "\xEF\xBC\xA5" => "\x65", + "\xEF\xBC\xA6" => "\x66", "\xEF\xBC\xA7" => "\x67", "\xEF\xBC\xA8" => "\x68", "\xEF\xBC\xA9" => "\x69", @@ -3631,6 +3934,12 @@ function idna_maps() "\xEF\xBC\xB8" => "\x78", "\xEF\xBC\xB9" => "\x79", "\xEF\xBC\xBA" => "\x7A", + "\xEF\xBC\xBB" => "\x5B", + "\xEF\xBC\xBC" => "\x5C", + "\xEF\xBC\xBD" => "\x5D", + "\xEF\xBC\xBE" => "\x5E", + "\xEF\xBC\xBF" => "\x5F", + "\xEF\xBD\x80" => "\x60", "\xEF\xBD\x81" => "\x61", "\xEF\xBD\x82" => "\x62", "\xEF\xBD\x83" => "\x63", @@ -3657,6 +3966,10 @@ function idna_maps() "\xEF\xBD\x98" => "\x78", "\xEF\xBD\x99" => "\x79", "\xEF\xBD\x9A" => "\x7A", + "\xEF\xBD\x9B" => "\x7B", + "\xEF\xBD\x9C" => "\x7C", + "\xEF\xBD\x9D" => "\x7D", + "\xEF\xBD\x9E" => "\x7E", "\xEF\xBD\x9F" => "\xE2\xA6\x85", "\xEF\xBD\xA0" => "\xE2\xA6\x86", "\xEF\xBD\xA1" => "\x2E", @@ -3776,6 +4089,7 @@ function idna_maps() "\xEF\xBF\xA0" => "\xC2\xA2", "\xEF\xBF\xA1" => "\xC2\xA3", "\xEF\xBF\xA2" => "\xC2\xAC", + "\xEF\xBF\xA3" => "\x20\xCC\x84", "\xEF\xBF\xA4" => "\xC2\xA6", "\xEF\xBF\xA5" => "\xC2\xA5", "\xEF\xBF\xA6" => "\xE2\x82\xA9", @@ -4004,6 +4318,28 @@ function idna_maps() "\xF0\x90\xB2\xB0" => "\xF0\x90\xB3\xB0", "\xF0\x90\xB2\xB1" => "\xF0\x90\xB3\xB1", "\xF0\x90\xB2\xB2" => "\xF0\x90\xB3\xB2", + "\xF0\x90\xB5\x90" => "\xF0\x90\xB5\xB0", + "\xF0\x90\xB5\x91" => "\xF0\x90\xB5\xB1", + "\xF0\x90\xB5\x92" => "\xF0\x90\xB5\xB2", + "\xF0\x90\xB5\x93" => "\xF0\x90\xB5\xB3", + "\xF0\x90\xB5\x94" => "\xF0\x90\xB5\xB4", + "\xF0\x90\xB5\x95" => "\xF0\x90\xB5\xB5", + "\xF0\x90\xB5\x96" => "\xF0\x90\xB5\xB6", + "\xF0\x90\xB5\x97" => "\xF0\x90\xB5\xB7", + "\xF0\x90\xB5\x98" => "\xF0\x90\xB5\xB8", + "\xF0\x90\xB5\x99" => "\xF0\x90\xB5\xB9", + "\xF0\x90\xB5\x9A" => "\xF0\x90\xB5\xBA", + "\xF0\x90\xB5\x9B" => "\xF0\x90\xB5\xBB", + "\xF0\x90\xB5\x9C" => "\xF0\x90\xB5\xBC", + "\xF0\x90\xB5\x9D" => "\xF0\x90\xB5\xBD", + "\xF0\x90\xB5\x9E" => "\xF0\x90\xB5\xBE", + "\xF0\x90\xB5\x9F" => "\xF0\x90\xB5\xBF", + "\xF0\x90\xB5\xA0" => "\xF0\x90\xB6\x80", + "\xF0\x90\xB5\xA1" => "\xF0\x90\xB6\x81", + "\xF0\x90\xB5\xA2" => "\xF0\x90\xB6\x82", + "\xF0\x90\xB5\xA3" => "\xF0\x90\xB6\x83", + "\xF0\x90\xB5\xA4" => "\xF0\x90\xB6\x84", + "\xF0\x90\xB5\xA5" => "\xF0\x90\xB6\x85", "\xF0\x91\xA2\xA0" => "\xF0\x91\xA3\x80", "\xF0\x91\xA2\xA1" => "\xF0\x91\xA3\x81", "\xF0\x91\xA2\xA2" => "\xF0\x91\xA3\x82", @@ -4068,6 +4404,42 @@ function idna_maps() "\xF0\x96\xB9\x9D" => "\xF0\x96\xB9\xBD", "\xF0\x96\xB9\x9E" => "\xF0\x96\xB9\xBE", "\xF0\x96\xB9\x9F" => "\xF0\x96\xB9\xBF", + "\xF0\x9C\xB3\x96" => "\x61", + "\xF0\x9C\xB3\x97" => "\x62", + "\xF0\x9C\xB3\x98" => "\x63", + "\xF0\x9C\xB3\x99" => "\x64", + "\xF0\x9C\xB3\x9A" => "\x65", + "\xF0\x9C\xB3\x9B" => "\x66", + "\xF0\x9C\xB3\x9C" => "\x67", + "\xF0\x9C\xB3\x9D" => "\x68", + "\xF0\x9C\xB3\x9E" => "\x69", + "\xF0\x9C\xB3\x9F" => "\x6A", + "\xF0\x9C\xB3\xA0" => "\x6B", + "\xF0\x9C\xB3\xA1" => "\x6C", + "\xF0\x9C\xB3\xA2" => "\x6D", + "\xF0\x9C\xB3\xA3" => "\x6E", + "\xF0\x9C\xB3\xA4" => "\x6F", + "\xF0\x9C\xB3\xA5" => "\x70", + "\xF0\x9C\xB3\xA6" => "\x71", + "\xF0\x9C\xB3\xA7" => "\x72", + "\xF0\x9C\xB3\xA8" => "\x73", + "\xF0\x9C\xB3\xA9" => "\x74", + "\xF0\x9C\xB3\xAA" => "\x75", + "\xF0\x9C\xB3\xAB" => "\x76", + "\xF0\x9C\xB3\xAC" => "\x77", + "\xF0\x9C\xB3\xAD" => "\x78", + "\xF0\x9C\xB3\xAE" => "\x79", + "\xF0\x9C\xB3\xAF" => "\x7A", + "\xF0\x9C\xB3\xB0" => "\x30", + "\xF0\x9C\xB3\xB1" => "\x31", + "\xF0\x9C\xB3\xB2" => "\x32", + "\xF0\x9C\xB3\xB3" => "\x33", + "\xF0\x9C\xB3\xB4" => "\x34", + "\xF0\x9C\xB3\xB5" => "\x35", + "\xF0\x9C\xB3\xB6" => "\x36", + "\xF0\x9C\xB3\xB7" => "\x37", + "\xF0\x9C\xB3\xB8" => "\x38", + "\xF0\x9C\xB3\xB9" => "\x39", "\xF0\x9D\x85\x9E" => "\xF0\x9D\x85\x97\xF0\x9D\x85\xA5", "\xF0\x9D\x85\x9F" => "\xF0\x9D\x85\x98\xF0\x9D\x85\xA5", "\xF0\x9D\x85\xA0" => "\xF0\x9D\x85\x98\xF0\x9D\x85\xA5\xF0\x9D\x85\xAE", @@ -5314,6 +5686,42 @@ function idna_maps() "\xF0\x9E\xBA\xB9" => "\xD8\xB6", "\xF0\x9E\xBA\xBA" => "\xD8\xB8", "\xF0\x9E\xBA\xBB" => "\xD8\xBA", + "\xF0\x9F\x84\x81" => "\x30\x2C", + "\xF0\x9F\x84\x82" => "\x31\x2C", + "\xF0\x9F\x84\x83" => "\x32\x2C", + "\xF0\x9F\x84\x84" => "\x33\x2C", + "\xF0\x9F\x84\x85" => "\x34\x2C", + "\xF0\x9F\x84\x86" => "\x35\x2C", + "\xF0\x9F\x84\x87" => "\x36\x2C", + "\xF0\x9F\x84\x88" => "\x37\x2C", + "\xF0\x9F\x84\x89" => "\x38\x2C", + "\xF0\x9F\x84\x8A" => "\x39\x2C", + "\xF0\x9F\x84\x90" => "\x28\x61\x29", + "\xF0\x9F\x84\x91" => "\x28\x62\x29", + "\xF0\x9F\x84\x92" => "\x28\x63\x29", + "\xF0\x9F\x84\x93" => "\x28\x64\x29", + "\xF0\x9F\x84\x94" => "\x28\x65\x29", + "\xF0\x9F\x84\x95" => "\x28\x66\x29", + "\xF0\x9F\x84\x96" => "\x28\x67\x29", + "\xF0\x9F\x84\x97" => "\x28\x68\x29", + "\xF0\x9F\x84\x98" => "\x28\x69\x29", + "\xF0\x9F\x84\x99" => "\x28\x6A\x29", + "\xF0\x9F\x84\x9A" => "\x28\x6B\x29", + "\xF0\x9F\x84\x9B" => "\x28\x6C\x29", + "\xF0\x9F\x84\x9C" => "\x28\x6D\x29", + "\xF0\x9F\x84\x9D" => "\x28\x6E\x29", + "\xF0\x9F\x84\x9E" => "\x28\x6F\x29", + "\xF0\x9F\x84\x9F" => "\x28\x70\x29", + "\xF0\x9F\x84\xA0" => "\x28\x71\x29", + "\xF0\x9F\x84\xA1" => "\x28\x72\x29", + "\xF0\x9F\x84\xA2" => "\x28\x73\x29", + "\xF0\x9F\x84\xA3" => "\x28\x74\x29", + "\xF0\x9F\x84\xA4" => "\x28\x75\x29", + "\xF0\x9F\x84\xA5" => "\x28\x76\x29", + "\xF0\x9F\x84\xA6" => "\x28\x77\x29", + "\xF0\x9F\x84\xA7" => "\x28\x78\x29", + "\xF0\x9F\x84\xA8" => "\x28\x79\x29", + "\xF0\x9F\x84\xA9" => "\x28\x7A\x29", "\xF0\x9F\x84\xAA" => "\xE3\x80\x94\x73\xE3\x80\x95", "\xF0\x9F\x84\xAB" => "\x63", "\xF0\x9F\x84\xAC" => "\x72", @@ -5527,6 +5935,7 @@ function idna_maps() "\xF0\xAF\xA1\xA5" => "\xE5\xA7\x98", "\xF0\xAF\xA1\xA6" => "\xE5\xA9\xA6", "\xF0\xAF\xA1\xA7" => "\xE3\x9B\xAE", + "\xF0\xAF\xA1\xA8" => "\xE3\x9B\xBC", "\xF0\xAF\xA1\xA9" => "\xE5\xAC\x88", "\xF0\xAF\xA1\xAA" => "\xE5\xAC\xBE", "\xF0\xAF\xA1\xAB" => "\xE5\xAC\xBE", @@ -5538,6 +5947,7 @@ function idna_maps() "\xF0\xAF\xA1\xB1" => "\xF0\xA1\xAC\x98", "\xF0\xAF\xA1\xB2" => "\xE5\xAF\xBF", "\xF0\xAF\xA1\xB3" => "\xE5\xB0\x86", + "\xF0\xAF\xA1\xB4" => "\xE5\xBD\x93", "\xF0\xAF\xA1\xB5" => "\xE5\xB0\xA2", "\xF0\xAF\xA1\xB6" => "\xE3\x9E\x81", "\xF0\xAF\xA1\xB7" => "\xE5\xB1\xA0", @@ -5708,6 +6118,7 @@ function idna_maps() "\xF0\xAF\xA4\x9C" => "\xE7\x85\x85", "\xF0\xAF\xA4\x9D" => "\xF0\xA4\x89\xA3", "\xF0\xAF\xA4\x9E" => "\xE7\x86\x9C", + "\xF0\xAF\xA4\x9F" => "\xF0\xA4\x8E\xAB", "\xF0\xAF\xA4\xA0" => "\xE7\x88\xA8", "\xF0\xAF\xA4\xA1" => "\xE7\x88\xB5", "\xF0\xAF\xA4\xA2" => "\xE7\x89\x90", @@ -5771,6 +6182,7 @@ function idna_maps() "\xF0\xAF\xA5\x9C" => "\xF0\xA5\xA5\xBC", "\xF0\xAF\xA5\x9D" => "\xF0\xA5\xAA\xA7", "\xF0\xAF\xA5\x9E" => "\xF0\xA5\xAA\xA7", + "\xF0\xAF\xA5\x9F" => "\xE7\xAB\xAE", "\xF0\xAF\xA5\xA0" => "\xE4\x88\x82", "\xF0\xAF\xA5\xA1" => "\xF0\xA5\xAE\xAB", "\xF0\xAF\xA5\xA2" => "\xE7\xAF\x86", @@ -5866,6 +6278,7 @@ function idna_maps() "\xF0\xAF\xA6\xBC" => "\xE8\x9C\xA8", "\xF0\xAF\xA6\xBD" => "\xE8\x9D\xAB", "\xF0\xAF\xA6\xBE" => "\xE8\x9E\x86", + "\xF0\xAF\xA6\xBF" => "\xE4\x97\x97", "\xF0\xAF\xA7\x80" => "\xE8\x9F\xA1", "\xF0\xAF\xA7\x81" => "\xE8\xA0\x81", "\xF0\xAF\xA7\x82" => "\xE4\x97\xB9", @@ -5981,324 +6394,6 @@ function idna_maps_deviation() ); } -/** - * Helper function for idn_to_* polyfills. - * - * Developers: Do not update the data in this function manually. Instead, - * run "php -f other/update_unicode_data.php" on the command line. - * - * @return array Non-STD3 character maps for IDNA processing. - */ -function idna_maps_not_std3() -{ - return array( - "\xC2\xA0" => "\x20", - "\xC2\xA8" => "\x20\xCC\x88", - "\xC2\xAF" => "\x20\xCC\x84", - "\xC2\xB4" => "\x20\xCC\x81", - "\xC2\xB8" => "\x20\xCC\xA7", - "\xCB\x98" => "\x20\xCC\x86", - "\xCB\x99" => "\x20\xCC\x87", - "\xCB\x9A" => "\x20\xCC\x8A", - "\xCB\x9B" => "\x20\xCC\xA8", - "\xCB\x9C" => "\x20\xCC\x83", - "\xCB\x9D" => "\x20\xCC\x8B", - "\xCD\xBA" => "\x20\xCE\xB9", - "\xCD\xBE" => "\x3B", - "\xCE\x84" => "\x20\xCC\x81", - "\xCE\x85" => "\x20\xCC\x88\xCC\x81", - "\xE1\xBE\xBD" => "\x20\xCC\x93", - "\xE1\xBE\xBF" => "\x20\xCC\x93", - "\xE1\xBF\x80" => "\x20\xCD\x82", - "\xE1\xBF\x81" => "\x20\xCC\x88\xCD\x82", - "\xE1\xBF\x8D" => "\x20\xCC\x93\xCC\x80", - "\xE1\xBF\x8E" => "\x20\xCC\x93\xCC\x81", - "\xE1\xBF\x8F" => "\x20\xCC\x93\xCD\x82", - "\xE1\xBF\x9D" => "\x20\xCC\x94\xCC\x80", - "\xE1\xBF\x9E" => "\x20\xCC\x94\xCC\x81", - "\xE1\xBF\x9F" => "\x20\xCC\x94\xCD\x82", - "\xE1\xBF\xAD" => "\x20\xCC\x88\xCC\x80", - "\xE1\xBF\xAE" => "\x20\xCC\x88\xCC\x81", - "\xE1\xBF\xAF" => "\x60", - "\xE1\xBF\xBD" => "\x20\xCC\x81", - "\xE1\xBF\xBE" => "\x20\xCC\x94", - "\xE2\x80\x80" => "\x20", - "\xE2\x80\x81" => "\x20", - "\xE2\x80\x82" => "\x20", - "\xE2\x80\x83" => "\x20", - "\xE2\x80\x84" => "\x20", - "\xE2\x80\x85" => "\x20", - "\xE2\x80\x86" => "\x20", - "\xE2\x80\x87" => "\x20", - "\xE2\x80\x88" => "\x20", - "\xE2\x80\x89" => "\x20", - "\xE2\x80\x8A" => "\x20", - "\xE2\x80\x97" => "\x20\xCC\xB3", - "\xE2\x80\xAF" => "\x20", - "\xE2\x80\xBC" => "\x21\x21", - "\xE2\x80\xBE" => "\x20\xCC\x85", - "\xE2\x81\x87" => "\x3F\x3F", - "\xE2\x81\x88" => "\x3F\x21", - "\xE2\x81\x89" => "\x21\x3F", - "\xE2\x81\x9F" => "\x20", - "\xE2\x81\xBA" => "\x2B", - "\xE2\x81\xBC" => "\x3D", - "\xE2\x81\xBD" => "\x28", - "\xE2\x81\xBE" => "\x29", - "\xE2\x82\x8A" => "\x2B", - "\xE2\x82\x8C" => "\x3D", - "\xE2\x82\x8D" => "\x28", - "\xE2\x82\x8E" => "\x29", - "\xE2\x84\x80" => "\x61\x2F\x63", - "\xE2\x84\x81" => "\x61\x2F\x73", - "\xE2\x84\x85" => "\x63\x2F\x6F", - "\xE2\x84\x86" => "\x63\x2F\x75", - "\xE2\x91\xB4" => "\x28\x31\x29", - "\xE2\x91\xB5" => "\x28\x32\x29", - "\xE2\x91\xB6" => "\x28\x33\x29", - "\xE2\x91\xB7" => "\x28\x34\x29", - "\xE2\x91\xB8" => "\x28\x35\x29", - "\xE2\x91\xB9" => "\x28\x36\x29", - "\xE2\x91\xBA" => "\x28\x37\x29", - "\xE2\x91\xBB" => "\x28\x38\x29", - "\xE2\x91\xBC" => "\x28\x39\x29", - "\xE2\x91\xBD" => "\x28\x31\x30\x29", - "\xE2\x91\xBE" => "\x28\x31\x31\x29", - "\xE2\x91\xBF" => "\x28\x31\x32\x29", - "\xE2\x92\x80" => "\x28\x31\x33\x29", - "\xE2\x92\x81" => "\x28\x31\x34\x29", - "\xE2\x92\x82" => "\x28\x31\x35\x29", - "\xE2\x92\x83" => "\x28\x31\x36\x29", - "\xE2\x92\x84" => "\x28\x31\x37\x29", - "\xE2\x92\x85" => "\x28\x31\x38\x29", - "\xE2\x92\x86" => "\x28\x31\x39\x29", - "\xE2\x92\x87" => "\x28\x32\x30\x29", - "\xE2\x92\x9C" => "\x28\x61\x29", - "\xE2\x92\x9D" => "\x28\x62\x29", - "\xE2\x92\x9E" => "\x28\x63\x29", - "\xE2\x92\x9F" => "\x28\x64\x29", - "\xE2\x92\xA0" => "\x28\x65\x29", - "\xE2\x92\xA1" => "\x28\x66\x29", - "\xE2\x92\xA2" => "\x28\x67\x29", - "\xE2\x92\xA3" => "\x28\x68\x29", - "\xE2\x92\xA4" => "\x28\x69\x29", - "\xE2\x92\xA5" => "\x28\x6A\x29", - "\xE2\x92\xA6" => "\x28\x6B\x29", - "\xE2\x92\xA7" => "\x28\x6C\x29", - "\xE2\x92\xA8" => "\x28\x6D\x29", - "\xE2\x92\xA9" => "\x28\x6E\x29", - "\xE2\x92\xAA" => "\x28\x6F\x29", - "\xE2\x92\xAB" => "\x28\x70\x29", - "\xE2\x92\xAC" => "\x28\x71\x29", - "\xE2\x92\xAD" => "\x28\x72\x29", - "\xE2\x92\xAE" => "\x28\x73\x29", - "\xE2\x92\xAF" => "\x28\x74\x29", - "\xE2\x92\xB0" => "\x28\x75\x29", - "\xE2\x92\xB1" => "\x28\x76\x29", - "\xE2\x92\xB2" => "\x28\x77\x29", - "\xE2\x92\xB3" => "\x28\x78\x29", - "\xE2\x92\xB4" => "\x28\x79\x29", - "\xE2\x92\xB5" => "\x28\x7A\x29", - "\xE2\xA9\xB4" => "\x3A\x3A\x3D", - "\xE2\xA9\xB5" => "\x3D\x3D", - "\xE2\xA9\xB6" => "\x3D\x3D\x3D", - "\xE3\x80\x80" => "\x20", - "\xE3\x82\x9B" => "\x20\xE3\x82\x99", - "\xE3\x82\x9C" => "\x20\xE3\x82\x9A", - "\xE3\x88\x80" => "\x28\xE1\x84\x80\x29", - "\xE3\x88\x81" => "\x28\xE1\x84\x82\x29", - "\xE3\x88\x82" => "\x28\xE1\x84\x83\x29", - "\xE3\x88\x83" => "\x28\xE1\x84\x85\x29", - "\xE3\x88\x84" => "\x28\xE1\x84\x86\x29", - "\xE3\x88\x85" => "\x28\xE1\x84\x87\x29", - "\xE3\x88\x86" => "\x28\xE1\x84\x89\x29", - "\xE3\x88\x87" => "\x28\xE1\x84\x8B\x29", - "\xE3\x88\x88" => "\x28\xE1\x84\x8C\x29", - "\xE3\x88\x89" => "\x28\xE1\x84\x8E\x29", - "\xE3\x88\x8A" => "\x28\xE1\x84\x8F\x29", - "\xE3\x88\x8B" => "\x28\xE1\x84\x90\x29", - "\xE3\x88\x8C" => "\x28\xE1\x84\x91\x29", - "\xE3\x88\x8D" => "\x28\xE1\x84\x92\x29", - "\xE3\x88\x8E" => "\x28\xEA\xB0\x80\x29", - "\xE3\x88\x8F" => "\x28\xEB\x82\x98\x29", - "\xE3\x88\x90" => "\x28\xEB\x8B\xA4\x29", - "\xE3\x88\x91" => "\x28\xEB\x9D\xBC\x29", - "\xE3\x88\x92" => "\x28\xEB\xA7\x88\x29", - "\xE3\x88\x93" => "\x28\xEB\xB0\x94\x29", - "\xE3\x88\x94" => "\x28\xEC\x82\xAC\x29", - "\xE3\x88\x95" => "\x28\xEC\x95\x84\x29", - "\xE3\x88\x96" => "\x28\xEC\x9E\x90\x29", - "\xE3\x88\x97" => "\x28\xEC\xB0\xA8\x29", - "\xE3\x88\x98" => "\x28\xEC\xB9\xB4\x29", - "\xE3\x88\x99" => "\x28\xED\x83\x80\x29", - "\xE3\x88\x9A" => "\x28\xED\x8C\x8C\x29", - "\xE3\x88\x9B" => "\x28\xED\x95\x98\x29", - "\xE3\x88\x9C" => "\x28\xEC\xA3\xBC\x29", - "\xE3\x88\x9D" => "\x28\xEC\x98\xA4\xEC\xA0\x84\x29", - "\xE3\x88\x9E" => "\x28\xEC\x98\xA4\xED\x9B\x84\x29", - "\xE3\x88\xA0" => "\x28\xE4\xB8\x80\x29", - "\xE3\x88\xA1" => "\x28\xE4\xBA\x8C\x29", - "\xE3\x88\xA2" => "\x28\xE4\xB8\x89\x29", - "\xE3\x88\xA3" => "\x28\xE5\x9B\x9B\x29", - "\xE3\x88\xA4" => "\x28\xE4\xBA\x94\x29", - "\xE3\x88\xA5" => "\x28\xE5\x85\xAD\x29", - "\xE3\x88\xA6" => "\x28\xE4\xB8\x83\x29", - "\xE3\x88\xA7" => "\x28\xE5\x85\xAB\x29", - "\xE3\x88\xA8" => "\x28\xE4\xB9\x9D\x29", - "\xE3\x88\xA9" => "\x28\xE5\x8D\x81\x29", - "\xE3\x88\xAA" => "\x28\xE6\x9C\x88\x29", - "\xE3\x88\xAB" => "\x28\xE7\x81\xAB\x29", - "\xE3\x88\xAC" => "\x28\xE6\xB0\xB4\x29", - "\xE3\x88\xAD" => "\x28\xE6\x9C\xA8\x29", - "\xE3\x88\xAE" => "\x28\xE9\x87\x91\x29", - "\xE3\x88\xAF" => "\x28\xE5\x9C\x9F\x29", - "\xE3\x88\xB0" => "\x28\xE6\x97\xA5\x29", - "\xE3\x88\xB1" => "\x28\xE6\xA0\xAA\x29", - "\xE3\x88\xB2" => "\x28\xE6\x9C\x89\x29", - "\xE3\x88\xB3" => "\x28\xE7\xA4\xBE\x29", - "\xE3\x88\xB4" => "\x28\xE5\x90\x8D\x29", - "\xE3\x88\xB5" => "\x28\xE7\x89\xB9\x29", - "\xE3\x88\xB6" => "\x28\xE8\xB2\xA1\x29", - "\xE3\x88\xB7" => "\x28\xE7\xA5\x9D\x29", - "\xE3\x88\xB8" => "\x28\xE5\x8A\xB4\x29", - "\xE3\x88\xB9" => "\x28\xE4\xBB\xA3\x29", - "\xE3\x88\xBA" => "\x28\xE5\x91\xBC\x29", - "\xE3\x88\xBB" => "\x28\xE5\xAD\xA6\x29", - "\xE3\x88\xBC" => "\x28\xE7\x9B\xA3\x29", - "\xE3\x88\xBD" => "\x28\xE4\xBC\x81\x29", - "\xE3\x88\xBE" => "\x28\xE8\xB3\x87\x29", - "\xE3\x88\xBF" => "\x28\xE5\x8D\x94\x29", - "\xE3\x89\x80" => "\x28\xE7\xA5\xAD\x29", - "\xE3\x89\x81" => "\x28\xE4\xBC\x91\x29", - "\xE3\x89\x82" => "\x28\xE8\x87\xAA\x29", - "\xE3\x89\x83" => "\x28\xE8\x87\xB3\x29", - "\xEF\xAC\xA9" => "\x2B", - "\xEF\xB1\x9E" => "\x20\xD9\x8C\xD9\x91", - "\xEF\xB1\x9F" => "\x20\xD9\x8D\xD9\x91", - "\xEF\xB1\xA0" => "\x20\xD9\x8E\xD9\x91", - "\xEF\xB1\xA1" => "\x20\xD9\x8F\xD9\x91", - "\xEF\xB1\xA2" => "\x20\xD9\x90\xD9\x91", - "\xEF\xB1\xA3" => "\x20\xD9\x91\xD9\xB0", - "\xEF\xB7\xBA" => "\xD8\xB5\xD9\x84\xD9\x89\x20\xD8\xA7\xD9\x84\xD9\x84\xD9\x87\x20\xD8\xB9\xD9\x84\xD9\x8A\xD9\x87\x20\xD9\x88\xD8\xB3\xD9\x84\xD9\x85", - "\xEF\xB7\xBB" => "\xD8\xAC\xD9\x84\x20\xD8\xAC\xD9\x84\xD8\xA7\xD9\x84\xD9\x87", - "\xEF\xB8\x90" => "\x2C", - "\xEF\xB8\x93" => "\x3A", - "\xEF\xB8\x94" => "\x3B", - "\xEF\xB8\x95" => "\x21", - "\xEF\xB8\x96" => "\x3F", - "\xEF\xB8\xB3" => "\x5F", - "\xEF\xB8\xB4" => "\x5F", - "\xEF\xB8\xB5" => "\x28", - "\xEF\xB8\xB6" => "\x29", - "\xEF\xB8\xB7" => "\x7B", - "\xEF\xB8\xB8" => "\x7D", - "\xEF\xB9\x87" => "\x5B", - "\xEF\xB9\x88" => "\x5D", - "\xEF\xB9\x89" => "\x20\xCC\x85", - "\xEF\xB9\x8A" => "\x20\xCC\x85", - "\xEF\xB9\x8B" => "\x20\xCC\x85", - "\xEF\xB9\x8C" => "\x20\xCC\x85", - "\xEF\xB9\x8D" => "\x5F", - "\xEF\xB9\x8E" => "\x5F", - "\xEF\xB9\x8F" => "\x5F", - "\xEF\xB9\x90" => "\x2C", - "\xEF\xB9\x94" => "\x3B", - "\xEF\xB9\x95" => "\x3A", - "\xEF\xB9\x96" => "\x3F", - "\xEF\xB9\x97" => "\x21", - "\xEF\xB9\x99" => "\x28", - "\xEF\xB9\x9A" => "\x29", - "\xEF\xB9\x9B" => "\x7B", - "\xEF\xB9\x9C" => "\x7D", - "\xEF\xB9\x9F" => "\x23", - "\xEF\xB9\xA0" => "\x26", - "\xEF\xB9\xA1" => "\x2A", - "\xEF\xB9\xA2" => "\x2B", - "\xEF\xB9\xA4" => "\x3C", - "\xEF\xB9\xA5" => "\x3E", - "\xEF\xB9\xA6" => "\x3D", - "\xEF\xB9\xA8" => "\x5C", - "\xEF\xB9\xA9" => "\x24", - "\xEF\xB9\xAA" => "\x25", - "\xEF\xB9\xAB" => "\x40", - "\xEF\xB9\xB0" => "\x20\xD9\x8B", - "\xEF\xB9\xB2" => "\x20\xD9\x8C", - "\xEF\xB9\xB4" => "\x20\xD9\x8D", - "\xEF\xB9\xB6" => "\x20\xD9\x8E", - "\xEF\xB9\xB8" => "\x20\xD9\x8F", - "\xEF\xB9\xBA" => "\x20\xD9\x90", - "\xEF\xB9\xBC" => "\x20\xD9\x91", - "\xEF\xB9\xBE" => "\x20\xD9\x92", - "\xEF\xBC\x81" => "\x21", - "\xEF\xBC\x82" => "\x22", - "\xEF\xBC\x83" => "\x23", - "\xEF\xBC\x84" => "\x24", - "\xEF\xBC\x85" => "\x25", - "\xEF\xBC\x86" => "\x26", - "\xEF\xBC\x87" => "\x27", - "\xEF\xBC\x88" => "\x28", - "\xEF\xBC\x89" => "\x29", - "\xEF\xBC\x8A" => "\x2A", - "\xEF\xBC\x8B" => "\x2B", - "\xEF\xBC\x8C" => "\x2C", - "\xEF\xBC\x8F" => "\x2F", - "\xEF\xBC\x9A" => "\x3A", - "\xEF\xBC\x9B" => "\x3B", - "\xEF\xBC\x9C" => "\x3C", - "\xEF\xBC\x9D" => "\x3D", - "\xEF\xBC\x9E" => "\x3E", - "\xEF\xBC\x9F" => "\x3F", - "\xEF\xBC\xA0" => "\x40", - "\xEF\xBC\xBB" => "\x5B", - "\xEF\xBC\xBC" => "\x5C", - "\xEF\xBC\xBD" => "\x5D", - "\xEF\xBC\xBE" => "\x5E", - "\xEF\xBC\xBF" => "\x5F", - "\xEF\xBD\x80" => "\x60", - "\xEF\xBD\x9B" => "\x7B", - "\xEF\xBD\x9C" => "\x7C", - "\xEF\xBD\x9D" => "\x7D", - "\xEF\xBD\x9E" => "\x7E", - "\xEF\xBF\xA3" => "\x20\xCC\x84", - "\xF0\x9F\x84\x81" => "\x30\x2C", - "\xF0\x9F\x84\x82" => "\x31\x2C", - "\xF0\x9F\x84\x83" => "\x32\x2C", - "\xF0\x9F\x84\x84" => "\x33\x2C", - "\xF0\x9F\x84\x85" => "\x34\x2C", - "\xF0\x9F\x84\x86" => "\x35\x2C", - "\xF0\x9F\x84\x87" => "\x36\x2C", - "\xF0\x9F\x84\x88" => "\x37\x2C", - "\xF0\x9F\x84\x89" => "\x38\x2C", - "\xF0\x9F\x84\x8A" => "\x39\x2C", - "\xF0\x9F\x84\x90" => "\x28\x61\x29", - "\xF0\x9F\x84\x91" => "\x28\x62\x29", - "\xF0\x9F\x84\x92" => "\x28\x63\x29", - "\xF0\x9F\x84\x93" => "\x28\x64\x29", - "\xF0\x9F\x84\x94" => "\x28\x65\x29", - "\xF0\x9F\x84\x95" => "\x28\x66\x29", - "\xF0\x9F\x84\x96" => "\x28\x67\x29", - "\xF0\x9F\x84\x97" => "\x28\x68\x29", - "\xF0\x9F\x84\x98" => "\x28\x69\x29", - "\xF0\x9F\x84\x99" => "\x28\x6A\x29", - "\xF0\x9F\x84\x9A" => "\x28\x6B\x29", - "\xF0\x9F\x84\x9B" => "\x28\x6C\x29", - "\xF0\x9F\x84\x9C" => "\x28\x6D\x29", - "\xF0\x9F\x84\x9D" => "\x28\x6E\x29", - "\xF0\x9F\x84\x9E" => "\x28\x6F\x29", - "\xF0\x9F\x84\x9F" => "\x28\x70\x29", - "\xF0\x9F\x84\xA0" => "\x28\x71\x29", - "\xF0\x9F\x84\xA1" => "\x28\x72\x29", - "\xF0\x9F\x84\xA2" => "\x28\x73\x29", - "\xF0\x9F\x84\xA3" => "\x28\x74\x29", - "\xF0\x9F\x84\xA4" => "\x28\x75\x29", - "\xF0\x9F\x84\xA5" => "\x28\x76\x29", - "\xF0\x9F\x84\xA6" => "\x28\x77\x29", - "\xF0\x9F\x84\xA7" => "\x28\x78\x29", - "\xF0\x9F\x84\xA8" => "\x28\x79\x29", - "\xF0\x9F\x84\xA9" => "\x28\x7A\x29", - ); -} - /** * Helper function for idn_to_* polyfills. * @@ -6310,300 +6405,6 @@ function idna_maps_not_std3() function idna_regex() { return array( - 'disallowed_std3' => - '\x{0}-\x{2C}' . - '\x{2F}' . - '\x{3A}-\x{40}' . - '\x{5B}-\x{60}' . - '\x{7B}-\x{7F}' . - '\x{A0}' . - '\x{A8}' . - '\x{AF}' . - '\x{B4}' . - '\x{B8}' . - '\x{2D8}' . - '\x{2D9}' . - '\x{2DA}' . - '\x{2DB}' . - '\x{2DC}' . - '\x{2DD}' . - '\x{37A}' . - '\x{37E}' . - '\x{384}' . - '\x{385}' . - '\x{1FBD}' . - '\x{1FBF}' . - '\x{1FC0}' . - '\x{1FC1}' . - '\x{1FCD}' . - '\x{1FCE}' . - '\x{1FCF}' . - '\x{1FDD}' . - '\x{1FDE}' . - '\x{1FDF}' . - '\x{1FED}' . - '\x{1FEE}' . - '\x{1FEF}' . - '\x{1FFD}' . - '\x{1FFE}' . - '\x{2000}-\x{200A}' . - '\x{2017}' . - '\x{202F}' . - '\x{203C}' . - '\x{203E}' . - '\x{2047}' . - '\x{2048}' . - '\x{2049}' . - '\x{205F}' . - '\x{207A}' . - '\x{207C}' . - '\x{207D}' . - '\x{207E}' . - '\x{208A}' . - '\x{208C}' . - '\x{208D}' . - '\x{208E}' . - '\x{2100}' . - '\x{2101}' . - '\x{2105}' . - '\x{2106}' . - '\x{2474}' . - '\x{2475}' . - '\x{2476}' . - '\x{2477}' . - '\x{2478}' . - '\x{2479}' . - '\x{247A}' . - '\x{247B}' . - '\x{247C}' . - '\x{247D}' . - '\x{247E}' . - '\x{247F}' . - '\x{2480}' . - '\x{2481}' . - '\x{2482}' . - '\x{2483}' . - '\x{2484}' . - '\x{2485}' . - '\x{2486}' . - '\x{2487}' . - '\x{249C}' . - '\x{249D}' . - '\x{249E}' . - '\x{249F}' . - '\x{24A0}' . - '\x{24A1}' . - '\x{24A2}' . - '\x{24A3}' . - '\x{24A4}' . - '\x{24A5}' . - '\x{24A6}' . - '\x{24A7}' . - '\x{24A8}' . - '\x{24A9}' . - '\x{24AA}' . - '\x{24AB}' . - '\x{24AC}' . - '\x{24AD}' . - '\x{24AE}' . - '\x{24AF}' . - '\x{24B0}' . - '\x{24B1}' . - '\x{24B2}' . - '\x{24B3}' . - '\x{24B4}' . - '\x{24B5}' . - '\x{2A74}' . - '\x{2A75}' . - '\x{2A76}' . - '\x{3000}' . - '\x{309B}' . - '\x{309C}' . - '\x{3200}' . - '\x{3201}' . - '\x{3202}' . - '\x{3203}' . - '\x{3204}' . - '\x{3205}' . - '\x{3206}' . - '\x{3207}' . - '\x{3208}' . - '\x{3209}' . - '\x{320A}' . - '\x{320B}' . - '\x{320C}' . - '\x{320D}' . - '\x{320E}' . - '\x{320F}' . - '\x{3210}' . - '\x{3211}' . - '\x{3212}' . - '\x{3213}' . - '\x{3214}' . - '\x{3215}' . - '\x{3216}' . - '\x{3217}' . - '\x{3218}' . - '\x{3219}' . - '\x{321A}' . - '\x{321B}' . - '\x{321C}' . - '\x{321D}' . - '\x{321E}' . - '\x{3220}' . - '\x{3221}' . - '\x{3222}' . - '\x{3223}' . - '\x{3224}' . - '\x{3225}' . - '\x{3226}' . - '\x{3227}' . - '\x{3228}' . - '\x{3229}' . - '\x{322A}' . - '\x{322B}' . - '\x{322C}' . - '\x{322D}' . - '\x{322E}' . - '\x{322F}' . - '\x{3230}' . - '\x{3231}' . - '\x{3232}' . - '\x{3233}' . - '\x{3234}' . - '\x{3235}' . - '\x{3236}' . - '\x{3237}' . - '\x{3238}' . - '\x{3239}' . - '\x{323A}' . - '\x{323B}' . - '\x{323C}' . - '\x{323D}' . - '\x{323E}' . - '\x{323F}' . - '\x{3240}' . - '\x{3241}' . - '\x{3242}' . - '\x{3243}' . - '\x{FB29}' . - '\x{FC5E}' . - '\x{FC5F}' . - '\x{FC60}' . - '\x{FC61}' . - '\x{FC62}' . - '\x{FC63}' . - '\x{FDFA}' . - '\x{FDFB}' . - '\x{FE10}' . - '\x{FE13}' . - '\x{FE14}' . - '\x{FE15}' . - '\x{FE16}' . - '\x{FE33}-\x{FE34}' . - '\x{FE35}' . - '\x{FE36}' . - '\x{FE37}' . - '\x{FE38}' . - '\x{FE47}' . - '\x{FE48}' . - '\x{FE49}-\x{FE4C}' . - '\x{FE4D}-\x{FE4F}' . - '\x{FE50}' . - '\x{FE54}' . - '\x{FE55}' . - '\x{FE56}' . - '\x{FE57}' . - '\x{FE59}' . - '\x{FE5A}' . - '\x{FE5B}' . - '\x{FE5C}' . - '\x{FE5F}' . - '\x{FE60}' . - '\x{FE61}' . - '\x{FE62}' . - '\x{FE64}' . - '\x{FE65}' . - '\x{FE66}' . - '\x{FE68}' . - '\x{FE69}' . - '\x{FE6A}' . - '\x{FE6B}' . - '\x{FE70}' . - '\x{FE72}' . - '\x{FE74}' . - '\x{FE76}' . - '\x{FE78}' . - '\x{FE7A}' . - '\x{FE7C}' . - '\x{FE7E}' . - '\x{FF01}' . - '\x{FF02}' . - '\x{FF03}' . - '\x{FF04}' . - '\x{FF05}' . - '\x{FF06}' . - '\x{FF07}' . - '\x{FF08}' . - '\x{FF09}' . - '\x{FF0A}' . - '\x{FF0B}' . - '\x{FF0C}' . - '\x{FF0F}' . - '\x{FF1A}' . - '\x{FF1B}' . - '\x{FF1C}' . - '\x{FF1D}' . - '\x{FF1E}' . - '\x{FF1F}' . - '\x{FF20}' . - '\x{FF3B}' . - '\x{FF3C}' . - '\x{FF3D}' . - '\x{FF3E}' . - '\x{FF3F}' . - '\x{FF40}' . - '\x{FF5B}' . - '\x{FF5C}' . - '\x{FF5D}' . - '\x{FF5E}' . - '\x{FFE3}' . - '\x{1F101}' . - '\x{1F102}' . - '\x{1F103}' . - '\x{1F104}' . - '\x{1F105}' . - '\x{1F106}' . - '\x{1F107}' . - '\x{1F108}' . - '\x{1F109}' . - '\x{1F10A}' . - '\x{1F110}' . - '\x{1F111}' . - '\x{1F112}' . - '\x{1F113}' . - '\x{1F114}' . - '\x{1F115}' . - '\x{1F116}' . - '\x{1F117}' . - '\x{1F118}' . - '\x{1F119}' . - '\x{1F11A}' . - '\x{1F11B}' . - '\x{1F11C}' . - '\x{1F11D}' . - '\x{1F11E}' . - '\x{1F11F}' . - '\x{1F120}' . - '\x{1F121}' . - '\x{1F122}' . - '\x{1F123}' . - '\x{1F124}' . - '\x{1F125}' . - '\x{1F126}' . - '\x{1F127}' . - '\x{1F128}' . - '\x{1F129}', 'disallowed' => '\x{80}-\x{9F}' . '\x{378}-\x{379}' . @@ -6611,7 +6412,6 @@ function idna_regex() '\x{38B}' . '\x{38D}' . '\x{3A2}' . - '\x{4C0}' . '\x{530}' . '\x{557}-\x{558}' . '\x{58B}-\x{58C}' . @@ -6636,7 +6436,7 @@ function idna_regex() '\x{86B}-\x{86F}' . '\x{88F}' . '\x{890}-\x{891}' . - '\x{892}-\x{897}' . + '\x{892}-\x{896}' . '\x{8E2}' . '\x{984}' . '\x{98D}-\x{98E}' . @@ -6775,11 +6575,9 @@ function idna_regex() '\x{FBD}' . '\x{FCD}' . '\x{FDB}-\x{FFF}' . - '\x{10A0}-\x{10C5}' . '\x{10C6}' . '\x{10C8}-\x{10CC}' . '\x{10CE}-\x{10CF}' . - '\x{115F}-\x{1160}' . '\x{1249}' . '\x{124E}-\x{124F}' . '\x{1257}' . @@ -6809,12 +6607,9 @@ function idna_regex() '\x{176D}' . '\x{1771}' . '\x{1774}-\x{177F}' . - '\x{17B4}-\x{17B5}' . '\x{17DE}-\x{17DF}' . '\x{17EA}-\x{17EF}' . '\x{17FA}-\x{17FF}' . - '\x{1806}' . - '\x{180E}' . '\x{181A}-\x{181F}' . '\x{1879}-\x{187F}' . '\x{18AB}-\x{18AF}' . @@ -6835,12 +6630,11 @@ function idna_regex() '\x{1A9A}-\x{1A9F}' . '\x{1AAE}-\x{1AAF}' . '\x{1ACF}-\x{1AFF}' . - '\x{1B4D}-\x{1B4F}' . - '\x{1B7F}' . + '\x{1B4D}' . '\x{1BF4}-\x{1BFB}' . '\x{1C38}-\x{1C3A}' . '\x{1C4A}-\x{1C4C}' . - '\x{1C89}-\x{1C8F}' . + '\x{1C8B}-\x{1C8F}' . '\x{1CBB}-\x{1CBC}' . '\x{1CC8}-\x{1CCF}' . '\x{1CFB}-\x{1CFF}' . @@ -6863,19 +6657,15 @@ function idna_regex() '\x{200E}-\x{200F}' . '\x{2024}-\x{2026}' . '\x{2028}-\x{202E}' . - '\x{2061}-\x{2063}' . '\x{2065}' . '\x{2066}-\x{2069}' . - '\x{206A}-\x{206F}' . '\x{2072}-\x{2073}' . '\x{208F}' . '\x{209D}-\x{209F}' . '\x{20C1}-\x{20CF}' . '\x{20F1}-\x{20FF}' . - '\x{2132}' . - '\x{2183}' . '\x{218C}-\x{218F}' . - '\x{2427}-\x{243F}' . + '\x{242A}-\x{243F}' . '\x{244B}-\x{245F}' . '\x{2488}-\x{249B}' . '\x{2B74}-\x{2B75}' . @@ -6905,9 +6695,8 @@ function idna_regex() '\x{3097}-\x{3098}' . '\x{3100}-\x{3104}' . '\x{3130}' . - '\x{3164}' . '\x{318F}' . - '\x{31E4}-\x{31EE}' . + '\x{31E6}-\x{31EE}' . '\x{31EF}' . '\x{321F}' . '\x{33C2}' . @@ -6917,10 +6706,10 @@ function idna_regex() '\x{A4C7}-\x{A4CF}' . '\x{A62C}-\x{A63F}' . '\x{A6F8}-\x{A6FF}' . - '\x{A7CB}-\x{A7CF}' . + '\x{A7CE}-\x{A7CF}' . '\x{A7D2}' . '\x{A7D4}' . - '\x{A7DA}-\x{A7F1}' . + '\x{A7DD}-\x{A7F1}' . '\x{A82D}-\x{A82F}' . '\x{A83A}-\x{A83F}' . '\x{A878}-\x{A87F}' . @@ -6972,7 +6761,6 @@ function idna_regex() '\x{FE75}' . '\x{FEFD}-\x{FEFE}' . '\x{FF00}' . - '\x{FFA0}' . '\x{FFBF}-\x{FFC1}' . '\x{FFC8}-\x{FFC9}' . '\x{FFD0}-\x{FFD1}' . @@ -7019,7 +6807,8 @@ function idna_regex() '\x{105A2}' . '\x{105B2}' . '\x{105BA}' . - '\x{105BD}-\x{105FF}' . + '\x{105BD}-\x{105BF}' . + '\x{105F4}-\x{105FF}' . '\x{10737}-\x{1073F}' . '\x{10756}-\x{1075F}' . '\x{10768}-\x{1077F}' . @@ -7062,11 +6851,15 @@ function idna_regex() '\x{10CB3}-\x{10CBF}' . '\x{10CF3}-\x{10CF9}' . '\x{10D28}-\x{10D2F}' . - '\x{10D3A}-\x{10E5F}' . + '\x{10D3A}-\x{10D3F}' . + '\x{10D66}-\x{10D68}' . + '\x{10D86}-\x{10D8D}' . + '\x{10D90}-\x{10E5F}' . '\x{10E7F}' . '\x{10EAA}' . '\x{10EAE}-\x{10EAF}' . - '\x{10EB2}-\x{10EFC}' . + '\x{10EB2}-\x{10EC1}' . + '\x{10EC5}-\x{10EFB}' . '\x{10F28}-\x{10F2F}' . '\x{10F5A}-\x{10F6F}' . '\x{10F8A}-\x{10FAF}' . @@ -7108,7 +6901,18 @@ function idna_regex() '\x{11358}-\x{1135C}' . '\x{11364}-\x{11365}' . '\x{1136D}-\x{1136F}' . - '\x{11375}-\x{113FF}' . + '\x{11375}-\x{1137F}' . + '\x{1138A}' . + '\x{1138C}-\x{1138D}' . + '\x{1138F}' . + '\x{113B6}' . + '\x{113C1}' . + '\x{113C3}-\x{113C4}' . + '\x{113C6}' . + '\x{113CB}' . + '\x{113D6}' . + '\x{113D9}-\x{113E0}' . + '\x{113E3}-\x{113FF}' . '\x{1145C}' . '\x{11462}-\x{1147F}' . '\x{114C8}-\x{114CF}' . @@ -7119,7 +6923,8 @@ function idna_regex() '\x{1165A}-\x{1165F}' . '\x{1166D}-\x{1167F}' . '\x{116BA}-\x{116BF}' . - '\x{116CA}-\x{116FF}' . + '\x{116CA}-\x{116CF}' . + '\x{116E4}-\x{116FF}' . '\x{1171B}-\x{1171C}' . '\x{1172C}-\x{1172F}' . '\x{11747}-\x{117FF}' . @@ -7139,7 +6944,9 @@ function idna_regex() '\x{11A48}-\x{11A4F}' . '\x{11AA3}-\x{11AAF}' . '\x{11AF9}-\x{11AFF}' . - '\x{11B0A}-\x{11BFF}' . + '\x{11B0A}-\x{11BBF}' . + '\x{11BE2}-\x{11BEF}' . + '\x{11BFA}-\x{11BFF}' . '\x{11C09}' . '\x{11C37}' . '\x{11C46}-\x{11C4F}' . @@ -7163,7 +6970,7 @@ function idna_regex() '\x{11EF9}-\x{11EFF}' . '\x{11F11}' . '\x{11F3B}-\x{11F3D}' . - '\x{11F5A}-\x{11FAF}' . + '\x{11F5B}-\x{11FAF}' . '\x{11FB1}-\x{11FBF}' . '\x{11FF2}-\x{11FFE}' . '\x{1239A}-\x{123FF}' . @@ -7173,8 +6980,10 @@ function idna_regex() '\x{12FF3}-\x{12FFF}' . '\x{13430}-\x{13438}' . '\x{13439}-\x{1343F}' . - '\x{13456}-\x{143FF}' . - '\x{14647}-\x{167FF}' . + '\x{13456}-\x{1345F}' . + '\x{143FB}-\x{143FF}' . + '\x{14647}-\x{160FF}' . + '\x{1613A}-\x{167FF}' . '\x{16A39}-\x{16A3F}' . '\x{16A5F}' . '\x{16A6A}-\x{16A6D}' . @@ -7186,7 +6995,8 @@ function idna_regex() '\x{16B5A}' . '\x{16B62}' . '\x{16B78}-\x{16B7C}' . - '\x{16B90}-\x{16E3F}' . + '\x{16B90}-\x{16D3F}' . + '\x{16D7A}-\x{16E3F}' . '\x{16E9B}-\x{16EFF}' . '\x{16F4B}-\x{16F4E}' . '\x{16F88}-\x{16F8E}' . @@ -7194,7 +7004,7 @@ function idna_regex() '\x{16FE5}-\x{16FEF}' . '\x{16FF2}-\x{16FFF}' . '\x{187F8}-\x{187FF}' . - '\x{18CD6}-\x{18CFF}' . + '\x{18CD6}-\x{18CFE}' . '\x{18D09}-\x{1AFEF}' . '\x{1AFF4}' . '\x{1AFFC}' . @@ -7209,13 +7019,14 @@ function idna_regex() '\x{1BC7D}-\x{1BC7F}' . '\x{1BC89}-\x{1BC8F}' . '\x{1BC9A}-\x{1BC9B}' . - '\x{1BCA4}-\x{1CEFF}' . + '\x{1BCA4}-\x{1CBFF}' . + '\x{1CCFA}-\x{1CCFF}' . + '\x{1CEB4}-\x{1CEFF}' . '\x{1CF2E}-\x{1CF2F}' . '\x{1CF47}-\x{1CF4F}' . '\x{1CFC4}-\x{1CFFF}' . '\x{1D0F6}-\x{1D0FF}' . '\x{1D127}-\x{1D128}' . - '\x{1D173}-\x{1D17A}' . '\x{1D1EB}-\x{1D1FF}' . '\x{1D246}-\x{1D2BF}' . '\x{1D2D4}-\x{1D2DF}' . @@ -7261,7 +7072,9 @@ function idna_regex() '\x{1E2AF}-\x{1E2BF}' . '\x{1E2FA}-\x{1E2FE}' . '\x{1E300}-\x{1E4CF}' . - '\x{1E4FA}-\x{1E7DF}' . + '\x{1E4FA}-\x{1E5CF}' . + '\x{1E5FB}-\x{1E5FE}' . + '\x{1E600}-\x{1E7DF}' . '\x{1E7E7}' . '\x{1E7EC}' . '\x{1E7EF}' . @@ -7332,18 +7145,17 @@ function idna_regex() '\x{1F85A}-\x{1F85F}' . '\x{1F888}-\x{1F88F}' . '\x{1F8AE}-\x{1F8AF}' . - '\x{1F8B2}-\x{1F8FF}' . + '\x{1F8BC}-\x{1F8BF}' . + '\x{1F8C2}-\x{1F8FF}' . '\x{1FA54}-\x{1FA5F}' . '\x{1FA6E}-\x{1FA6F}' . '\x{1FA7D}-\x{1FA7F}' . - '\x{1FA89}-\x{1FA8F}' . - '\x{1FABE}' . - '\x{1FAC6}-\x{1FACD}' . - '\x{1FADC}-\x{1FADF}' . - '\x{1FAE9}-\x{1FAEF}' . + '\x{1FA8A}-\x{1FA8E}' . + '\x{1FAC7}-\x{1FACD}' . + '\x{1FADD}-\x{1FADE}' . + '\x{1FAEA}-\x{1FAEF}' . '\x{1FAF9}-\x{1FAFF}' . '\x{1FB93}' . - '\x{1FBCB}-\x{1FBEF}' . '\x{1FBFA}-\x{1FFFD}' . '\x{1FFFE}-\x{1FFFF}' . '\x{2A6E0}-\x{2A6FF}' . @@ -7352,11 +7164,6 @@ function idna_regex() '\x{2CEA2}-\x{2CEAF}' . '\x{2EBE1}-\x{2EBEF}' . '\x{2EE5E}-\x{2F7FF}' . - '\x{2F868}' . - '\x{2F874}' . - '\x{2F91F}' . - '\x{2F95F}' . - '\x{2F9BF}' . '\x{2FA1E}-\x{2FFFD}' . '\x{2FFFE}-\x{2FFFF}' . '\x{3134B}-\x{3134F}' . @@ -7396,14 +7203,20 @@ function idna_regex() 'ignored' => '\x{AD}' . '\x{34F}' . - '\x{180B}-\x{180D}' . + '\x{115F}-\x{1160}' . + '\x{17B4}-\x{17B5}' . + '\x{180B}-\x{180E}' . '\x{180F}' . '\x{200B}' . - '\x{2060}' . + '\x{2060}-\x{2063}' . '\x{2064}' . + '\x{206A}-\x{206F}' . + '\x{3164}' . '\x{FE00}-\x{FE0F}' . '\x{FEFF}' . + '\x{FFA0}' . '\x{1BCA0}-\x{1BCA3}' . + '\x{1D173}-\x{1D17A}' . '\x{E0100}-\x{E01EF}', 'deviation' => '\x{DF}' . diff --git a/Sources/Unicode/Metadata.php b/Sources/Unicode/Metadata.php index 574cdebfcf..65a00de1fa 100644 --- a/Sources/Unicode/Metadata.php +++ b/Sources/Unicode/Metadata.php @@ -15,6 +15,6 @@ die('No direct access...'); if (!defined('SMF_UNICODE_VERSION')) - define('SMF_UNICODE_VERSION', '15.1.0.0'); + define('SMF_UNICODE_VERSION', '16.0.0.0'); ?> \ No newline at end of file diff --git a/Sources/Unicode/QuickCheck.php b/Sources/Unicode/QuickCheck.php index 168074a496..94aed2b0a3 100644 --- a/Sources/Unicode/QuickCheck.php +++ b/Sources/Unicode/QuickCheck.php @@ -5,10 +5,10 @@ * * @package SMF * @author Simple Machines https://www.simplemachines.org - * @copyright 2023 Simple Machines and individual contributors + * @copyright 2024 Simple Machines and individual contributors * @license https://www.simplemachines.org/about/smf/license.php BSD * - * @version 2.1.4 + * @version 2.1.5 */ if (!defined('SMF')) @@ -139,11 +139,18 @@ function utf8_regex_quick_check() '\x{11127}' . '\x{1133E}' . '\x{11357}' . + '\x{113B8}' . + '\x{113BB}' . + '\x{113C2}' . + '\x{113C5}' . + '\x{113C7}-\x{113C9}' . '\x{114B0}' . '\x{114BA}' . '\x{114BD}' . '\x{115AF}' . - '\x{11930}', + '\x{11930}' . + '\x{1611E}-\x{16129}' . + '\x{16D67}-\x{16D68}', 'NFKC_QC' => '\x{00A0}' . '\x{00A8}' . @@ -332,6 +339,7 @@ function utf8_regex_quick_check() '\x{10781}-\x{10785}' . '\x{10787}-\x{107B0}' . '\x{107B2}-\x{107BA}' . + '\x{1CCD6}-\x{1CCF9}' . '\x{1D15E}-\x{1D164}' . '\x{1D1BB}-\x{1D1C0}' . '\x{1D400}-\x{1D454}' . @@ -437,11 +445,18 @@ function utf8_regex_quick_check() '\x{11127}' . '\x{1133E}' . '\x{11357}' . + '\x{113B8}' . + '\x{113BB}' . + '\x{113C2}' . + '\x{113C5}' . + '\x{113C7}-\x{113C9}' . '\x{114B0}' . '\x{114BA}' . '\x{114BD}' . '\x{115AF}' . - '\x{11930}', + '\x{11930}' . + '\x{1611E}-\x{16129}' . + '\x{16D67}-\x{16D68}', 'NFD_QC' => '\x{00C0}-\x{00C5}' . '\x{00C7}-\x{00CF}' . @@ -663,15 +678,25 @@ function utf8_regex_quick_check() '\x{FB40}-\x{FB41}' . '\x{FB43}-\x{FB44}' . '\x{FB46}-\x{FB4E}' . + '\x{105C9}' . + '\x{105E4}' . '\x{1109A}' . '\x{1109C}' . '\x{110AB}' . '\x{1112E}-\x{1112F}' . '\x{1134B}-\x{1134C}' . + '\x{11383}' . + '\x{11385}' . + '\x{1138E}' . + '\x{11391}' . + '\x{113C5}' . + '\x{113C7}-\x{113C8}' . '\x{114BB}-\x{114BC}' . '\x{114BE}' . '\x{115BA}-\x{115BB}' . '\x{11938}' . + '\x{16121}-\x{16128}' . + '\x{16D68}-\x{16D6A}' . '\x{1D15E}-\x{1D164}' . '\x{1D1BB}-\x{1D1C0}' . '\x{2F800}-\x{2FA1D}', @@ -993,6 +1018,8 @@ function utf8_regex_quick_check() '\x{FFDA}-\x{FFDC}' . '\x{FFE0}-\x{FFE6}' . '\x{FFE8}-\x{FFEE}' . + '\x{105C9}' . + '\x{105E4}' . '\x{10781}-\x{10785}' . '\x{10787}-\x{107B0}' . '\x{107B2}-\x{107BA}' . @@ -1001,10 +1028,19 @@ function utf8_regex_quick_check() '\x{110AB}' . '\x{1112E}-\x{1112F}' . '\x{1134B}-\x{1134C}' . + '\x{11383}' . + '\x{11385}' . + '\x{1138E}' . + '\x{11391}' . + '\x{113C5}' . + '\x{113C7}-\x{113C8}' . '\x{114BB}-\x{114BC}' . '\x{114BE}' . '\x{115BA}-\x{115BB}' . '\x{11938}' . + '\x{16121}-\x{16128}' . + '\x{16D68}-\x{16D6A}' . + '\x{1CCD6}-\x{1CCF9}' . '\x{1D15E}-\x{1D164}' . '\x{1D1BB}-\x{1D1C0}' . '\x{1D400}-\x{1D454}' . @@ -1395,7 +1431,7 @@ function utf8_regex_quick_check() '\x{13F8}-\x{13FD}' . '\x{17B4}-\x{17B5}' . '\x{180B}-\x{180F}' . - '\x{1C80}-\x{1C88}' . + '\x{1C80}-\x{1C89}' . '\x{1C90}-\x{1CBA}' . '\x{1CBD}-\x{1CBF}' . '\x{1D2C}-\x{1D2E}' . @@ -1782,9 +1818,12 @@ function utf8_regex_quick_check() '\x{A7C2}' . '\x{A7C4}-\x{A7C7}' . '\x{A7C9}' . + '\x{A7CB}-\x{A7CC}' . '\x{A7D0}' . '\x{A7D6}' . '\x{A7D8}' . + '\x{A7DA}' . + '\x{A7DC}' . '\x{A7F2}-\x{A7F5}' . '\x{A7F8}-\x{A7F9}' . '\x{AB5C}-\x{AB5F}' . @@ -1839,9 +1878,11 @@ function utf8_regex_quick_check() '\x{10787}-\x{107B0}' . '\x{107B2}-\x{107BA}' . '\x{10C80}-\x{10CB2}' . + '\x{10D50}-\x{10D65}' . '\x{118A0}-\x{118BF}' . '\x{16E40}-\x{16E5F}' . '\x{1BCA0}-\x{1BCA3}' . + '\x{1CCD6}-\x{1CCF9}' . '\x{1D15E}-\x{1D164}' . '\x{1D173}-\x{1D17A}' . '\x{1D1BB}-\x{1D1C0}' . diff --git a/Sources/Unicode/RegularExpressions.php b/Sources/Unicode/RegularExpressions.php index cd77ca4c4a..192493605e 100644 --- a/Sources/Unicode/RegularExpressions.php +++ b/Sources/Unicode/RegularExpressions.php @@ -104,7 +104,7 @@ function utf8_regex_properties() '\x{0859}-\x{085B}' . '\x{0888}' . '\x{0890}-\x{0891}' . - '\x{0898}-\x{089F}' . + '\x{0897}-\x{089F}' . '\x{08C9}' . '\x{08CA}-\x{08E1}' . '\x{08E2}' . @@ -385,8 +385,11 @@ function utf8_regex_properties() '\x{10A3F}' . '\x{10AE5}-\x{10AE6}' . '\x{10D24}-\x{10D27}' . + '\x{10D4E}' . + '\x{10D69}-\x{10D6D}' . + '\x{10D6F}' . '\x{10EAB}-\x{10EAC}' . - '\x{10EFD}-\x{10EFF}' . + '\x{10EFC}-\x{10EFF}' . '\x{10F46}-\x{10F50}' . '\x{10F82}-\x{10F85}' . '\x{11001}' . @@ -419,6 +422,11 @@ function utf8_regex_properties() '\x{11340}' . '\x{11366}-\x{1136C}' . '\x{11370}-\x{11374}' . + '\x{113BB}-\x{113C0}' . + '\x{113CE}' . + '\x{113D0}' . + '\x{113D2}' . + '\x{113E1}-\x{113E2}' . '\x{11438}-\x{1143F}' . '\x{11442}-\x{11444}' . '\x{11446}' . @@ -438,7 +446,8 @@ function utf8_regex_properties() '\x{116AD}' . '\x{116B0}-\x{116B5}' . '\x{116B7}' . - '\x{1171D}-\x{1171F}' . + '\x{1171D}' . + '\x{1171F}' . '\x{11722}-\x{11725}' . '\x{11727}-\x{1172B}' . '\x{1182F}-\x{11837}' . @@ -477,12 +486,17 @@ function utf8_regex_properties() '\x{11F36}-\x{11F3A}' . '\x{11F40}' . '\x{11F42}' . + '\x{11F5A}' . '\x{13430}-\x{1343F}' . '\x{13440}' . '\x{13447}-\x{13455}' . + '\x{1611E}-\x{16129}' . + '\x{1612D}-\x{1612F}' . '\x{16AF0}-\x{16AF4}' . '\x{16B30}-\x{16B36}' . '\x{16B40}-\x{16B43}' . + '\x{16D40}-\x{16D42}' . + '\x{16D6B}-\x{16D6C}' . '\x{16F4F}' . '\x{16F8F}-\x{16F92}' . '\x{16F93}-\x{16F9F}' . @@ -521,6 +535,7 @@ function utf8_regex_properties() '\x{1E2EC}-\x{1E2EF}' . '\x{1E4EB}' . '\x{1E4EC}-\x{1E4EF}' . + '\x{1E5EE}-\x{1E5EF}' . '\x{1E8D0}-\x{1E8D6}' . '\x{1E944}-\x{1E94A}' . '\x{1E94B}' . @@ -551,7 +566,7 @@ function utf8_regex_properties() '\x{085F}' . '\x{086B}-\x{086F}' . '\x{088F}' . - '\x{0892}-\x{0897}' . + '\x{0892}-\x{0896}' . '\x{0984}' . '\x{098D}-\x{098E}' . '\x{0991}-\x{0992}' . @@ -743,12 +758,11 @@ function utf8_regex_properties() '\x{1A9A}-\x{1A9F}' . '\x{1AAE}-\x{1AAF}' . '\x{1ACF}-\x{1AFF}' . - '\x{1B4D}-\x{1B4F}' . - '\x{1B7F}' . + '\x{1B4D}' . '\x{1BF4}-\x{1BFB}' . '\x{1C38}-\x{1C3A}' . '\x{1C4A}-\x{1C4C}' . - '\x{1C89}-\x{1C8F}' . + '\x{1C8B}-\x{1C8F}' . '\x{1CBB}-\x{1CBC}' . '\x{1CC8}-\x{1CCF}' . '\x{1CFB}-\x{1CFF}' . @@ -775,7 +789,7 @@ function utf8_regex_properties() '\x{20C1}-\x{20CF}' . '\x{20F1}-\x{20FF}' . '\x{218C}-\x{218F}' . - '\x{2427}-\x{243F}' . + '\x{242A}-\x{243F}' . '\x{244B}-\x{245F}' . '\x{2B74}-\x{2B75}' . '\x{2B96}' . @@ -803,16 +817,16 @@ function utf8_regex_properties() '\x{3100}-\x{3104}' . '\x{3130}' . '\x{318F}' . - '\x{31E4}-\x{31EE}' . + '\x{31E6}-\x{31EE}' . '\x{321F}' . '\x{A48D}-\x{A48F}' . '\x{A4C7}-\x{A4CF}' . '\x{A62C}-\x{A63F}' . '\x{A6F8}-\x{A6FF}' . - '\x{A7CB}-\x{A7CF}' . + '\x{A7CE}-\x{A7CF}' . '\x{A7D2}' . '\x{A7D4}' . - '\x{A7DA}-\x{A7F1}' . + '\x{A7DD}-\x{A7F1}' . '\x{A82D}-\x{A82F}' . '\x{A83A}-\x{A83F}' . '\x{A878}-\x{A87F}' . @@ -902,7 +916,8 @@ function utf8_regex_properties() '\x{105A2}' . '\x{105B2}' . '\x{105BA}' . - '\x{105BD}-\x{105FF}' . + '\x{105BD}-\x{105BF}' . + '\x{105F4}-\x{105FF}' . '\x{10737}-\x{1073F}' . '\x{10756}-\x{1075F}' . '\x{10768}-\x{1077F}' . @@ -945,11 +960,15 @@ function utf8_regex_properties() '\x{10CB3}-\x{10CBF}' . '\x{10CF3}-\x{10CF9}' . '\x{10D28}-\x{10D2F}' . - '\x{10D3A}-\x{10E5F}' . + '\x{10D3A}-\x{10D3F}' . + '\x{10D66}-\x{10D68}' . + '\x{10D86}-\x{10D8D}' . + '\x{10D90}-\x{10E5F}' . '\x{10E7F}' . '\x{10EAA}' . '\x{10EAE}-\x{10EAF}' . - '\x{10EB2}-\x{10EFC}' . + '\x{10EB2}-\x{10EC1}' . + '\x{10EC5}-\x{10EFB}' . '\x{10F28}-\x{10F2F}' . '\x{10F5A}-\x{10F6F}' . '\x{10F8A}-\x{10FAF}' . @@ -989,7 +1008,18 @@ function utf8_regex_properties() '\x{11358}-\x{1135C}' . '\x{11364}-\x{11365}' . '\x{1136D}-\x{1136F}' . - '\x{11375}-\x{113FF}' . + '\x{11375}-\x{1137F}' . + '\x{1138A}' . + '\x{1138C}-\x{1138D}' . + '\x{1138F}' . + '\x{113B6}' . + '\x{113C1}' . + '\x{113C3}-\x{113C4}' . + '\x{113C6}' . + '\x{113CB}' . + '\x{113D6}' . + '\x{113D9}-\x{113E0}' . + '\x{113E3}-\x{113FF}' . '\x{1145C}' . '\x{11462}-\x{1147F}' . '\x{114C8}-\x{114CF}' . @@ -1000,7 +1030,8 @@ function utf8_regex_properties() '\x{1165A}-\x{1165F}' . '\x{1166D}-\x{1167F}' . '\x{116BA}-\x{116BF}' . - '\x{116CA}-\x{116FF}' . + '\x{116CA}-\x{116CF}' . + '\x{116E4}-\x{116FF}' . '\x{1171B}-\x{1171C}' . '\x{1172C}-\x{1172F}' . '\x{11747}-\x{117FF}' . @@ -1020,7 +1051,9 @@ function utf8_regex_properties() '\x{11A48}-\x{11A4F}' . '\x{11AA3}-\x{11AAF}' . '\x{11AF9}-\x{11AFF}' . - '\x{11B0A}-\x{11BFF}' . + '\x{11B0A}-\x{11BBF}' . + '\x{11BE2}-\x{11BEF}' . + '\x{11BFA}-\x{11BFF}' . '\x{11C09}' . '\x{11C37}' . '\x{11C46}-\x{11C4F}' . @@ -1044,7 +1077,7 @@ function utf8_regex_properties() '\x{11EF9}-\x{11EFF}' . '\x{11F11}' . '\x{11F3B}-\x{11F3D}' . - '\x{11F5A}-\x{11FAF}' . + '\x{11F5B}-\x{11FAF}' . '\x{11FB1}-\x{11FBF}' . '\x{11FF2}-\x{11FFE}' . '\x{1239A}-\x{123FF}' . @@ -1052,8 +1085,10 @@ function utf8_regex_properties() '\x{12475}-\x{1247F}' . '\x{12544}-\x{12F8F}' . '\x{12FF3}-\x{12FFF}' . - '\x{13456}-\x{143FF}' . - '\x{14647}-\x{167FF}' . + '\x{13456}-\x{1345F}' . + '\x{143FB}-\x{143FF}' . + '\x{14647}-\x{160FF}' . + '\x{1613A}-\x{167FF}' . '\x{16A39}-\x{16A3F}' . '\x{16A5F}' . '\x{16A6A}-\x{16A6D}' . @@ -1065,7 +1100,8 @@ function utf8_regex_properties() '\x{16B5A}' . '\x{16B62}' . '\x{16B78}-\x{16B7C}' . - '\x{16B90}-\x{16E3F}' . + '\x{16B90}-\x{16D3F}' . + '\x{16D7A}-\x{16E3F}' . '\x{16E9B}-\x{16EFF}' . '\x{16F4B}-\x{16F4E}' . '\x{16F88}-\x{16F8E}' . @@ -1073,7 +1109,7 @@ function utf8_regex_properties() '\x{16FE5}-\x{16FEF}' . '\x{16FF2}-\x{16FFF}' . '\x{187F8}-\x{187FF}' . - '\x{18CD6}-\x{18CFF}' . + '\x{18CD6}-\x{18CFE}' . '\x{18D09}-\x{1AFEF}' . '\x{1AFF4}' . '\x{1AFFC}' . @@ -1088,7 +1124,9 @@ function utf8_regex_properties() '\x{1BC7D}-\x{1BC7F}' . '\x{1BC89}-\x{1BC8F}' . '\x{1BC9A}-\x{1BC9B}' . - '\x{1BCA4}-\x{1CEFF}' . + '\x{1BCA4}-\x{1CBFF}' . + '\x{1CCFA}-\x{1CCFF}' . + '\x{1CEB4}-\x{1CEFF}' . '\x{1CF2E}-\x{1CF2F}' . '\x{1CF47}-\x{1CF4F}' . '\x{1CFC4}-\x{1CFFF}' . @@ -1139,7 +1177,9 @@ function utf8_regex_properties() '\x{1E2AF}-\x{1E2BF}' . '\x{1E2FA}-\x{1E2FE}' . '\x{1E300}-\x{1E4CF}' . - '\x{1E4FA}-\x{1E7DF}' . + '\x{1E4FA}-\x{1E5CF}' . + '\x{1E5FB}-\x{1E5FE}' . + '\x{1E600}-\x{1E7DF}' . '\x{1E7E7}' . '\x{1E7EC}' . '\x{1E7EF}' . @@ -1209,18 +1249,17 @@ function utf8_regex_properties() '\x{1F85A}-\x{1F85F}' . '\x{1F888}-\x{1F88F}' . '\x{1F8AE}-\x{1F8AF}' . - '\x{1F8B2}-\x{1F8FF}' . + '\x{1F8BC}-\x{1F8BF}' . + '\x{1F8C2}-\x{1F8FF}' . '\x{1FA54}-\x{1FA5F}' . '\x{1FA6E}-\x{1FA6F}' . '\x{1FA7D}-\x{1FA7F}' . - '\x{1FA89}-\x{1FA8F}' . - '\x{1FABE}' . - '\x{1FAC6}-\x{1FACD}' . - '\x{1FADC}-\x{1FADF}' . - '\x{1FAE9}-\x{1FAEF}' . + '\x{1FA8A}-\x{1FA8E}' . + '\x{1FAC7}-\x{1FACD}' . + '\x{1FADD}-\x{1FADE}' . + '\x{1FAEA}-\x{1FAEF}' . '\x{1FAF9}-\x{1FAFF}' . '\x{1FB93}' . - '\x{1FBCB}-\x{1FBEF}' . '\x{1FBFA}-\x{1FFFF}' . '\x{2A6E0}-\x{2A6FF}' . '\x{2B73A}-\x{2B73F}' . @@ -1651,6 +1690,8 @@ function utf8_regex_properties() '\x{1FA80}-\x{1FA82}' . '\x{1FA83}-\x{1FA86}' . '\x{1FA87}-\x{1FA88}' . + '\x{1FA89}' . + '\x{1FA8F}' . '\x{1FA90}-\x{1FA95}' . '\x{1FA96}-\x{1FAA8}' . '\x{1FAA9}-\x{1FAAC}' . @@ -1658,15 +1699,20 @@ function utf8_regex_properties() '\x{1FAB0}-\x{1FAB6}' . '\x{1FAB7}-\x{1FABA}' . '\x{1FABB}-\x{1FABD}' . + '\x{1FABE}' . '\x{1FABF}' . '\x{1FAC0}-\x{1FAC2}' . '\x{1FAC3}-\x{1FAC5}' . + '\x{1FAC6}' . '\x{1FACE}-\x{1FACF}' . '\x{1FAD0}-\x{1FAD6}' . '\x{1FAD7}-\x{1FAD9}' . '\x{1FADA}-\x{1FADB}' . + '\x{1FADC}' . + '\x{1FADF}' . '\x{1FAE0}-\x{1FAE7}' . '\x{1FAE8}' . + '\x{1FAE9}' . '\x{1FAF0}-\x{1FAF6}' . '\x{1FAF7}-\x{1FAF8}', 'Emoji_Modifier' => @@ -1683,7 +1729,7 @@ function utf8_regex_properties() '\x{16FE4}' . '\x{17000}-\x{187F7}' . '\x{18800}-\x{18CD5}' . - '\x{18D00}-\x{18D08}' . + '\x{18CFF}-\x{18D08}' . '\x{1B170}-\x{1B2FB}' . '\x{20000}-\x{2A6DF}' . '\x{2A700}-\x{2B739}' . @@ -1905,6 +1951,8 @@ function utf8_regex_variation_selectors() '\x{1F6E9}' . '\x{1F6F0}' . '\x{1F6F3}', + '\x{FE03}\x{FE06}' => + '\x{13338}', '\x{FE02}' => '\x{13117}' . '\x{13139}' . @@ -1931,6 +1979,7 @@ function utf8_regex_variation_selectors() '\x{13385}' . '\x{133AF}-\x{133B0}' . '\x{133BF}' . + '\x{133DB}' . '\x{133DD}' . '\x{13419}' . '\x{1342C}' . @@ -1961,6 +2010,8 @@ function utf8_regex_variation_selectors() '\x{1D4A9}-\x{1D4AC}' . '\x{211B}' . '\x{1D4AE}-\x{1D4B5}' . + '\x{2018}-\x{2019}' . + '\x{201C}-\x{201D}' . '\x{3001}-\x{3002}' . '\x{FF01}' . '\x{FF0C}' . @@ -1968,7 +2019,8 @@ function utf8_regex_variation_selectors() '\x{FF1A}-\x{FF1B}' . '\x{FF1F}' . '\x{13093}' . - '\x{130A9}' . + '\x{13132}' . + '\x{13139}' . '\x{13187}' . '\x{131B1}' . '\x{131EE}' . @@ -1981,6 +2033,7 @@ function utf8_regex_variation_selectors() '\x{1331B}' . '\x{13321}-\x{13322}' . '\x{13331}' . + '\x{133E8}' . '\x{13419}' . '\x{3B9D}' . '\x{3EB8}' . @@ -2099,6 +2152,8 @@ function utf8_regex_variation_selectors() '\x{1D4A9}-\x{1D4AC}' . '\x{211B}' . '\x{1D4AE}-\x{1D4B5}' . + '\x{2018}-\x{2019}' . + '\x{201C}-\x{201D}' . '\x{3001}-\x{3002}' . '\x{FF01}' . '\x{FF0C}' . @@ -2129,7 +2184,7 @@ function utf8_regex_variation_selectors() '\x{10AC5}-\x{10AC6}' . '\x{10AD6}-\x{10AD7}' . '\x{10AE1}' . - '\x{13091}-\x{13092}' . + '\x{13091}' . '\x{1310F}' . '\x{1311C}' . '\x{13121}' . @@ -2139,7 +2194,9 @@ function utf8_regex_variation_selectors() '\x{131B1}' . '\x{131B8}-\x{131B9}' . '\x{131CB}' . + '\x{131E0}' . '\x{131F9}-\x{131FA}' . + '\x{1327B}' . '\x{1327F}' . '\x{13285}' . '\x{1328C}' . @@ -2150,13 +2207,14 @@ function utf8_regex_variation_selectors() '\x{13307}' . '\x{1331B}' . '\x{13322}' . - '\x{1333B}-\x{1333C}' . + '\x{1333C}' . '\x{13377}-\x{13378}' . '\x{13399}-\x{1339A}' . '\x{133D3}' . + '\x{133E5}' . + '\x{133E7}' . '\x{133F2}' . '\x{133F5}-\x{133F6}' . - '\x{13403}' . '\x{13416}' . '\x{13419}-\x{1341A}' . '\x{13423}' . @@ -3110,7 +3168,8 @@ function utf8_regex_joining_type() '\x{08A0}-\x{08A9}' . '\x{08AF}-\x{08B0}' . '\x{08B3}-\x{08B8}' . - '\x{08BA}-\x{08C8}', + '\x{08BA}-\x{08C8}' . + '\x{10EC3}-\x{10EC4}', 'Right_Joining' => '\x{0622}-\x{0625}' . '\x{0627}' . @@ -3137,7 +3196,8 @@ function utf8_regex_joining_type() '\x{08AA}-\x{08AC}' . '\x{08AE}' . '\x{08B1}-\x{08B2}' . - '\x{08B9}', + '\x{08B9}' . + '\x{10EC2}', 'Transparent' => '\x{0610}-\x{061A}' . '\x{061C}' . @@ -3148,11 +3208,27 @@ function utf8_regex_joining_type() '\x{06DF}-\x{06E4}' . '\x{06E7}-\x{06E8}' . '\x{06EA}-\x{06ED}' . - '\x{0898}-\x{089F}' . + '\x{0897}-\x{089F}' . '\x{08CA}-\x{08E1}' . '\x{08E3}-\x{0902}' . '\x{102E0}' . - '\x{10EFD}-\x{10EFF}', + '\x{10EFC}-\x{10EFF}', + ), + 'Mongolian' => array( + 'Join_Causing' => + '\x{180A}', + 'Dual_Joining' => + '\x{1807}' . + '\x{1820}-\x{1842}' . + '\x{1843}' . + '\x{1844}-\x{1878}' . + '\x{1887}-\x{18A8}' . + '\x{18AA}', + 'Transparent' => + '\x{180B}-\x{180D}' . + '\x{180F}' . + '\x{1885}-\x{1886}' . + '\x{18A9}', ), 'Syriac' => array( 'Join_Causing' => @@ -3186,6 +3262,15 @@ function utf8_regex_joining_type() '\x{0711}' . '\x{0730}-\x{074A}', ), + 'Adlam' => array( + 'Join_Causing' => + '\x{0640}', + 'Dual_Joining' => + '\x{1E900}-\x{1E943}', + 'Transparent' => + '\x{1E944}-\x{1E94A}' . + '\x{1E94B}', + ), 'Tirhuta' => array( 'Dual_Joining' => '\x{A840}-\x{A871}' . @@ -3197,15 +3282,6 @@ function utf8_regex_joining_type() '\x{114BF}-\x{114C0}' . '\x{114C2}-\x{114C3}', ), - 'Adlam' => array( - 'Join_Causing' => - '\x{0640}', - 'Dual_Joining' => - '\x{1E900}-\x{1E943}', - 'Transparent' => - '\x{1E944}-\x{1E94A}' . - '\x{1E94B}', - ), 'Nko' => array( 'Join_Causing' => '\x{07FA}', @@ -3215,6 +3291,12 @@ function utf8_regex_joining_type() '\x{07EB}-\x{07F3}' . '\x{07FD}', ), + 'Phags_Pa' => array( + 'Dual_Joining' => + '\x{A840}-\x{A871}', + 'Left_Joining' => + '\x{A872}', + ), 'Hanifi_Rohingya' => array( 'Join_Causing' => '\x{0640}', @@ -3313,28 +3395,6 @@ function utf8_regex_joining_type() 'Transparent' => '\x{10F82}-\x{10F85}', ), - 'Mongolian' => array( - 'Join_Causing' => - '\x{180A}', - 'Dual_Joining' => - '\x{1807}' . - '\x{1820}-\x{1842}' . - '\x{1843}' . - '\x{1844}-\x{1878}' . - '\x{1887}-\x{18A8}' . - '\x{18AA}', - 'Transparent' => - '\x{180B}-\x{180D}' . - '\x{180F}' . - '\x{1885}-\x{1886}' . - '\x{18A9}', - ), - 'Phags_Pa' => array( - 'Dual_Joining' => - '\x{A840}-\x{A871}', - 'Left_Joining' => - '\x{A872}', - ), 'Chorasmian' => array( 'Dual_Joining' => '\x{10FB0}' . @@ -3374,6 +3434,7 @@ function utf8_regex_indic() return array( 'Devanagari' => array( 'All' => + '\x{02BC}' . '\x{0900}-\x{0952}' . '\x{0955}-\x{0966}' . '\x{0966}-\x{096A}' . @@ -3394,6 +3455,7 @@ function utf8_regex_indic() '\x{A8F3}-\x{A8FF}' . '\x{11B00}-\x{11B09}', 'Letter' => + '\x{02BC}' . '\x{0904}-\x{0939}' . '\x{093D}' . '\x{0950}' . @@ -3577,6 +3639,7 @@ function utf8_regex_indic() ), 'Bengali' => array( 'All' => + '\x{02BC}' . '\x{0951}-\x{0952}' . '\x{0964}-\x{0965}' . '\x{0980}-\x{0983}' . @@ -3609,6 +3672,7 @@ function utf8_regex_indic() '\x{1CF7}' . '\x{A8F1}', 'Letter' => + '\x{02BC}' . '\x{0980}' . '\x{0985}-\x{098C}' . '\x{098F}-\x{0990}' . @@ -3796,14 +3860,13 @@ function utf8_regex_indic() '\x{0CDD}-\x{0CDE}' . '\x{0CE0}-\x{0CE3}' . '\x{0CE6}' . - '\x{0CE6}-\x{0CE8}' . - '\x{0CE8}-\x{0CEA}' . - '\x{0CEA}-\x{0CEC}' . - '\x{0CEC}-\x{0CEE}' . - '\x{0CEE}-\x{0CEF}' . + '\x{0CE6}-\x{0CE9}' . + '\x{0CE9}-\x{0CEC}' . + '\x{0CEC}-\x{0CEF}' . + '\x{0CEF}' . '\x{0CF1}-\x{0CF3}' . '\x{1CD0}' . - '\x{1CD2}' . + '\x{1CD2}-\x{1CD3}' . '\x{1CDA}' . '\x{1CF2}' . '\x{1CF4}' . @@ -4176,6 +4239,7 @@ function utf8_regex_indic() '\x{0968}' . '\x{096C}' . '\x{0970}' . + '\x{2E31}' . '\x{A836}' . '\x{A838}-\x{A839}' . '\x{A839}' . @@ -4199,14 +4263,44 @@ function utf8_regex_indic() '\x{110B7}-\x{110B8}' . '\x{110C2}', ), + 'Khojki' => array( + 'All' => + '\x{0AE7}' . + '\x{0AE9}' . + '\x{0AEB}' . + '\x{0AED}' . + '\x{0AEF}' . + '\x{A834}' . + '\x{A837}-\x{A83A}' . + '\x{11200}-\x{11211}' . + '\x{11213}-\x{11241}', + 'Letter' => + '\x{11200}-\x{11211}' . + '\x{11213}-\x{1122B}' . + '\x{1123F}-\x{11240}', + 'Nonspacing_Combining_Mark' => + '\x{11236}', + 'Nonspacing_Mark' => + '\x{1122F}-\x{11231}' . + '\x{11234}' . + '\x{11236}-\x{11237}' . + '\x{1123E}' . + '\x{11241}', + 'Virama' => + '\x{11235}', + 'Vowel_Dependent' => + '\x{1122C}-\x{1122E}' . + '\x{1122F}-\x{11231}' . + '\x{11232}-\x{11233}' . + '\x{11241}', + ), 'Nandinagari' => array( 'All' => '\x{0964}-\x{0965}' . '\x{0CE7}' . - '\x{0CE9}' . - '\x{0CEB}' . + '\x{0CEA}' . '\x{0CED}' . - '\x{0CEF}' . + '\x{0CF0}' . '\x{1CE9}' . '\x{1CF2}' . '\x{1CFA}' . @@ -4238,37 +4332,6 @@ function utf8_regex_indic() '\x{119DC}-\x{119DD}' . '\x{119E4}', ), - 'Khojki' => array( - 'All' => - '\x{0AE7}' . - '\x{0AE9}' . - '\x{0AEB}' . - '\x{0AED}' . - '\x{0AEF}' . - '\x{A834}' . - '\x{A837}-\x{A83A}' . - '\x{11200}-\x{11211}' . - '\x{11213}-\x{11241}', - 'Letter' => - '\x{11200}-\x{11211}' . - '\x{11213}-\x{1122B}' . - '\x{1123F}-\x{11240}', - 'Nonspacing_Combining_Mark' => - '\x{11236}', - 'Nonspacing_Mark' => - '\x{1122F}-\x{11231}' . - '\x{11234}' . - '\x{11236}-\x{11237}' . - '\x{1123E}' . - '\x{11241}', - 'Virama' => - '\x{11235}', - 'Vowel_Dependent' => - '\x{1122C}-\x{1122E}' . - '\x{1122F}-\x{11231}' . - '\x{11232}-\x{11233}' . - '\x{11241}', - ), 'Takri' => array( 'All' => '\x{0964}-\x{0965}' . @@ -4352,7 +4415,7 @@ function utf8_regex_indic() 'Balinese' => array( 'All' => '\x{1B00}-\x{1B4C}' . - '\x{1B50}-\x{1B7E}', + '\x{1B4E}-\x{1B7F}', 'Letter' => '\x{1B05}-\x{1B33}' . '\x{1B45}-\x{1B4C}',