Dep: update
주로 PHAN
This commit is contained in:
+925
@@ -0,0 +1,925 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com> and Trevor Rowbotham <trevor.rowbotham@pm.me>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Polyfill\Intl\Idn;
|
||||
|
||||
use Exception;
|
||||
use Normalizer;
|
||||
use Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges;
|
||||
use Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex;
|
||||
|
||||
/**
|
||||
* @see https://www.unicode.org/reports/tr46/
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
final class Idn
|
||||
{
|
||||
public const ERROR_EMPTY_LABEL = 1;
|
||||
public const ERROR_LABEL_TOO_LONG = 2;
|
||||
public const ERROR_DOMAIN_NAME_TOO_LONG = 4;
|
||||
public const ERROR_LEADING_HYPHEN = 8;
|
||||
public const ERROR_TRAILING_HYPHEN = 0x10;
|
||||
public const ERROR_HYPHEN_3_4 = 0x20;
|
||||
public const ERROR_LEADING_COMBINING_MARK = 0x40;
|
||||
public const ERROR_DISALLOWED = 0x80;
|
||||
public const ERROR_PUNYCODE = 0x100;
|
||||
public const ERROR_LABEL_HAS_DOT = 0x200;
|
||||
public const ERROR_INVALID_ACE_LABEL = 0x400;
|
||||
public const ERROR_BIDI = 0x800;
|
||||
public const ERROR_CONTEXTJ = 0x1000;
|
||||
public const ERROR_CONTEXTO_PUNCTUATION = 0x2000;
|
||||
public const ERROR_CONTEXTO_DIGITS = 0x4000;
|
||||
|
||||
public const INTL_IDNA_VARIANT_2003 = 0;
|
||||
public const INTL_IDNA_VARIANT_UTS46 = 1;
|
||||
|
||||
public const IDNA_DEFAULT = 0;
|
||||
public const IDNA_ALLOW_UNASSIGNED = 1;
|
||||
public const IDNA_USE_STD3_RULES = 2;
|
||||
public const IDNA_CHECK_BIDI = 4;
|
||||
public const IDNA_CHECK_CONTEXTJ = 8;
|
||||
public const IDNA_NONTRANSITIONAL_TO_ASCII = 16;
|
||||
public const IDNA_NONTRANSITIONAL_TO_UNICODE = 32;
|
||||
|
||||
public const MAX_DOMAIN_SIZE = 253;
|
||||
public const MAX_LABEL_SIZE = 63;
|
||||
|
||||
public const BASE = 36;
|
||||
public const TMIN = 1;
|
||||
public const TMAX = 26;
|
||||
public const SKEW = 38;
|
||||
public const DAMP = 700;
|
||||
public const INITIAL_BIAS = 72;
|
||||
public const INITIAL_N = 128;
|
||||
public const DELIMITER = '-';
|
||||
public const MAX_INT = 2147483647;
|
||||
|
||||
/**
|
||||
* Contains the numeric value of a basic code point (for use in representing integers) in the
|
||||
* range 0 to BASE-1, or -1 if b is does not represent a value.
|
||||
*
|
||||
* @var array<int, int>
|
||||
*/
|
||||
private static $basicToDigit = [
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
|
||||
|
||||
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
||||
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
|
||||
|
||||
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
||||
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
|
||||
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array<int, int>
|
||||
*/
|
||||
private static $virama;
|
||||
|
||||
/**
|
||||
* @var array<int, string>
|
||||
*/
|
||||
private static $mapped;
|
||||
|
||||
/**
|
||||
* @var array<int, bool>
|
||||
*/
|
||||
private static $ignored;
|
||||
|
||||
/**
|
||||
* @var array<int, string>
|
||||
*/
|
||||
private static $deviation;
|
||||
|
||||
/**
|
||||
* @var array<int, bool>
|
||||
*/
|
||||
private static $disallowed;
|
||||
|
||||
/**
|
||||
* @var array<int, string>
|
||||
*/
|
||||
private static $disallowed_STD3_mapped;
|
||||
|
||||
/**
|
||||
* @var array<int, bool>
|
||||
*/
|
||||
private static $disallowed_STD3_valid;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private static $mappingTableLoaded = false;
|
||||
|
||||
/**
|
||||
* @see https://www.unicode.org/reports/tr46/#ToASCII
|
||||
*
|
||||
* @param string $domainName
|
||||
* @param int $options
|
||||
* @param int $variant
|
||||
* @param array $idna_info
|
||||
*
|
||||
* @return string|false
|
||||
*/
|
||||
public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = [])
|
||||
{
|
||||
if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||
@trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
$options = [
|
||||
'CheckHyphens' => true,
|
||||
'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI),
|
||||
'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ),
|
||||
'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES),
|
||||
'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_ASCII),
|
||||
'VerifyDnsLength' => true,
|
||||
];
|
||||
$info = new Info();
|
||||
$labels = self::process((string) $domainName, $options, $info);
|
||||
|
||||
foreach ($labels as $i => $label) {
|
||||
// Only convert labels to punycode that contain non-ASCII code points
|
||||
if (1 === preg_match('/[^\x00-\x7F]/', $label)) {
|
||||
try {
|
||||
$label = 'xn--'.self::punycodeEncode($label);
|
||||
} catch (Exception $e) {
|
||||
$info->errors |= self::ERROR_PUNYCODE;
|
||||
}
|
||||
|
||||
$labels[$i] = $label;
|
||||
}
|
||||
}
|
||||
|
||||
if ($options['VerifyDnsLength']) {
|
||||
self::validateDomainAndLabelLength($labels, $info);
|
||||
}
|
||||
|
||||
$idna_info = [
|
||||
'result' => implode('.', $labels),
|
||||
'isTransitionalDifferent' => $info->transitionalDifferent,
|
||||
'errors' => $info->errors,
|
||||
];
|
||||
|
||||
return 0 === $info->errors ? $idna_info['result'] : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://www.unicode.org/reports/tr46/#ToUnicode
|
||||
*
|
||||
* @param string $domainName
|
||||
* @param int $options
|
||||
* @param int $variant
|
||||
* @param array $idna_info
|
||||
*
|
||||
* @return string|false
|
||||
*/
|
||||
public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = [])
|
||||
{
|
||||
if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||
@trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
$info = new Info();
|
||||
$labels = self::process((string) $domainName, [
|
||||
'CheckHyphens' => true,
|
||||
'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI),
|
||||
'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ),
|
||||
'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES),
|
||||
'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_UNICODE),
|
||||
], $info);
|
||||
$idna_info = [
|
||||
'result' => implode('.', $labels),
|
||||
'isTransitionalDifferent' => $info->transitionalDifferent,
|
||||
'errors' => $info->errors,
|
||||
];
|
||||
|
||||
return 0 === $info->errors ? $idna_info['result'] : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $label
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private static function isValidContextJ(array $codePoints, $label)
|
||||
{
|
||||
if (!isset(self::$virama)) {
|
||||
self::$virama = require __DIR__.\DIRECTORY_SEPARATOR.'Resources'.\DIRECTORY_SEPARATOR.'unidata'.\DIRECTORY_SEPARATOR.'virama.php';
|
||||
}
|
||||
|
||||
$offset = 0;
|
||||
|
||||
foreach ($codePoints as $i => $codePoint) {
|
||||
if (0x200C !== $codePoint && 0x200D !== $codePoint) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($codePoints[$i - 1])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If Canonical_Combining_Class(Before(cp)) .eq. Virama Then True;
|
||||
if (isset(self::$virama[$codePoints[$i - 1]])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C(Joining_Type:T)*(Joining_Type:{R,D})) Then
|
||||
// True;
|
||||
// Generated RegExp = ([Joining_Type:{L,D}][Joining_Type:T]*\u200C[Joining_Type:T]*)[Joining_Type:{R,D}]
|
||||
if (0x200C === $codePoint && 1 === preg_match(Regex::ZWNJ, $label, $matches, \PREG_OFFSET_CAPTURE, $offset)) {
|
||||
$offset += \strlen($matches[1][0]);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://www.unicode.org/reports/tr46/#ProcessingStepMap
|
||||
*
|
||||
* @param string $input
|
||||
* @param array<string, bool> $options
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function mapCodePoints($input, array $options, Info $info)
|
||||
{
|
||||
$str = '';
|
||||
$useSTD3ASCIIRules = $options['UseSTD3ASCIIRules'];
|
||||
$transitional = $options['Transitional_Processing'];
|
||||
|
||||
foreach (self::utf8Decode($input) as $codePoint) {
|
||||
$data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules);
|
||||
|
||||
switch ($data['status']) {
|
||||
case 'disallowed':
|
||||
$info->errors |= self::ERROR_DISALLOWED;
|
||||
|
||||
// no break.
|
||||
|
||||
case 'valid':
|
||||
$str .= mb_chr($codePoint, 'utf-8');
|
||||
|
||||
break;
|
||||
|
||||
case 'ignored':
|
||||
// Do nothing.
|
||||
break;
|
||||
|
||||
case 'mapped':
|
||||
$str .= $data['mapping'];
|
||||
|
||||
break;
|
||||
|
||||
case 'deviation':
|
||||
$info->transitionalDifferent = true;
|
||||
$str .= ($transitional ? $data['mapping'] : mb_chr($codePoint, 'utf-8'));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $str;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://www.unicode.org/reports/tr46/#Processing
|
||||
*
|
||||
* @param string $domain
|
||||
* @param array<string, bool> $options
|
||||
*
|
||||
* @return array<int, string>
|
||||
*/
|
||||
private static function process($domain, array $options, Info $info)
|
||||
{
|
||||
// If VerifyDnsLength is not set, we are doing ToUnicode otherwise we are doing ToASCII and
|
||||
// we need to respect the VerifyDnsLength option.
|
||||
$checkForEmptyLabels = !isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'];
|
||||
|
||||
if ($checkForEmptyLabels && '' === $domain) {
|
||||
$info->errors |= self::ERROR_EMPTY_LABEL;
|
||||
|
||||
return [$domain];
|
||||
}
|
||||
|
||||
// Step 1. Map each code point in the domain name string
|
||||
$domain = self::mapCodePoints($domain, $options, $info);
|
||||
|
||||
// Step 2. Normalize the domain name string to Unicode Normalization Form C.
|
||||
if (!Normalizer::isNormalized($domain, Normalizer::FORM_C)) {
|
||||
$domain = Normalizer::normalize($domain, Normalizer::FORM_C);
|
||||
}
|
||||
|
||||
// Step 3. Break the string into labels at U+002E (.) FULL STOP.
|
||||
$labels = explode('.', $domain);
|
||||
$lastLabelIndex = \count($labels) - 1;
|
||||
|
||||
// Step 4. Convert and validate each label in the domain name string.
|
||||
foreach ($labels as $i => $label) {
|
||||
$validationOptions = $options;
|
||||
|
||||
if ('xn--' === substr($label, 0, 4)) {
|
||||
try {
|
||||
$label = self::punycodeDecode(substr($label, 4));
|
||||
} catch (Exception $e) {
|
||||
$info->errors |= self::ERROR_PUNYCODE;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$validationOptions['Transitional_Processing'] = false;
|
||||
$labels[$i] = $label;
|
||||
}
|
||||
|
||||
self::validateLabel($label, $info, $validationOptions, $i > 0 && $i === $lastLabelIndex);
|
||||
}
|
||||
|
||||
if ($info->bidiDomain && !$info->validBidiDomain) {
|
||||
$info->errors |= self::ERROR_BIDI;
|
||||
}
|
||||
|
||||
// Any input domain name string that does not record an error has been successfully
|
||||
// processed according to this specification. Conversely, if an input domain_name string
|
||||
// causes an error, then the processing of the input domain_name string fails. Determining
|
||||
// what to do with error input is up to the caller, and not in the scope of this document.
|
||||
return $labels;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://tools.ietf.org/html/rfc5893#section-2
|
||||
*
|
||||
* @param string $label
|
||||
*/
|
||||
private static function validateBidiLabel($label, Info $info)
|
||||
{
|
||||
if (1 === preg_match(Regex::RTL_LABEL, $label)) {
|
||||
$info->bidiDomain = true;
|
||||
|
||||
// Step 1. The first character must be a character with Bidi property L, R, or AL.
|
||||
// If it has the R or AL property, it is an RTL label
|
||||
if (1 !== preg_match(Regex::BIDI_STEP_1_RTL, $label)) {
|
||||
$info->validBidiDomain = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Step 2. In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES,
|
||||
// CS, ET, ON, BN, or NSM are allowed.
|
||||
if (1 === preg_match(Regex::BIDI_STEP_2, $label)) {
|
||||
$info->validBidiDomain = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Step 3. In an RTL label, the end of the label must be a character with Bidi property
|
||||
// R, AL, EN, or AN, followed by zero or more characters with Bidi property NSM.
|
||||
if (1 !== preg_match(Regex::BIDI_STEP_3, $label)) {
|
||||
$info->validBidiDomain = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Step 4. In an RTL label, if an EN is present, no AN may be present, and vice versa.
|
||||
if (1 === preg_match(Regex::BIDI_STEP_4_AN, $label) && 1 === preg_match(Regex::BIDI_STEP_4_EN, $label)) {
|
||||
$info->validBidiDomain = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// We are a LTR label
|
||||
// Step 1. The first character must be a character with Bidi property L, R, or AL.
|
||||
// If it has the L property, it is an LTR label.
|
||||
if (1 !== preg_match(Regex::BIDI_STEP_1_LTR, $label)) {
|
||||
$info->validBidiDomain = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Step 5. In an LTR label, only characters with the Bidi properties L, EN,
|
||||
// ES, CS, ET, ON, BN, or NSM are allowed.
|
||||
if (1 === preg_match(Regex::BIDI_STEP_5, $label)) {
|
||||
$info->validBidiDomain = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Step 6.In an LTR label, the end of the label must be a character with Bidi property L or
|
||||
// EN, followed by zero or more characters with Bidi property NSM.
|
||||
if (1 !== preg_match(Regex::BIDI_STEP_6, $label)) {
|
||||
$info->validBidiDomain = false;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<int, string> $labels
|
||||
*/
|
||||
private static function validateDomainAndLabelLength(array $labels, Info $info)
|
||||
{
|
||||
$maxDomainSize = self::MAX_DOMAIN_SIZE;
|
||||
$length = \count($labels);
|
||||
|
||||
// Number of "." delimiters.
|
||||
$domainLength = $length - 1;
|
||||
|
||||
// If the last label is empty and it is not the first label, then it is the root label.
|
||||
// Increase the max size by 1, making it 254, to account for the root label's "."
|
||||
// delimiter. This also means we don't need to check the last label's length for being too
|
||||
// long.
|
||||
if ($length > 1 && '' === $labels[$length - 1]) {
|
||||
++$maxDomainSize;
|
||||
--$length;
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $length; ++$i) {
|
||||
$bytes = \strlen($labels[$i]);
|
||||
$domainLength += $bytes;
|
||||
|
||||
if ($bytes > self::MAX_LABEL_SIZE) {
|
||||
$info->errors |= self::ERROR_LABEL_TOO_LONG;
|
||||
}
|
||||
}
|
||||
|
||||
if ($domainLength > $maxDomainSize) {
|
||||
$info->errors |= self::ERROR_DOMAIN_NAME_TOO_LONG;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://www.unicode.org/reports/tr46/#Validity_Criteria
|
||||
*
|
||||
* @param string $label
|
||||
* @param array<string, bool> $options
|
||||
* @param bool $canBeEmpty
|
||||
*/
|
||||
private static function validateLabel($label, Info $info, array $options, $canBeEmpty)
|
||||
{
|
||||
if ('' === $label) {
|
||||
if (!$canBeEmpty && (!isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'])) {
|
||||
$info->errors |= self::ERROR_EMPTY_LABEL;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Step 1. The label must be in Unicode Normalization Form C.
|
||||
if (!Normalizer::isNormalized($label, Normalizer::FORM_C)) {
|
||||
$info->errors |= self::ERROR_INVALID_ACE_LABEL;
|
||||
}
|
||||
|
||||
$codePoints = self::utf8Decode($label);
|
||||
|
||||
if ($options['CheckHyphens']) {
|
||||
// Step 2. If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character
|
||||
// in both the thrid and fourth positions.
|
||||
if (isset($codePoints[2], $codePoints[3]) && 0x002D === $codePoints[2] && 0x002D === $codePoints[3]) {
|
||||
$info->errors |= self::ERROR_HYPHEN_3_4;
|
||||
}
|
||||
|
||||
// Step 3. If CheckHyphens, the label must neither begin nor end with a U+002D
|
||||
// HYPHEN-MINUS character.
|
||||
if ('-' === substr($label, 0, 1)) {
|
||||
$info->errors |= self::ERROR_LEADING_HYPHEN;
|
||||
}
|
||||
|
||||
if ('-' === substr($label, -1, 1)) {
|
||||
$info->errors |= self::ERROR_TRAILING_HYPHEN;
|
||||
}
|
||||
}
|
||||
|
||||
// Step 4. The label must not contain a U+002E (.) FULL STOP.
|
||||
if (false !== strpos($label, '.')) {
|
||||
$info->errors |= self::ERROR_LABEL_HAS_DOT;
|
||||
}
|
||||
|
||||
// Step 5. The label must not begin with a combining mark, that is: General_Category=Mark.
|
||||
if (1 === preg_match(Regex::COMBINING_MARK, $label)) {
|
||||
$info->errors |= self::ERROR_LEADING_COMBINING_MARK;
|
||||
}
|
||||
|
||||
// Step 6. Each code point in the label must only have certain status values according to
|
||||
// Section 5, IDNA Mapping Table:
|
||||
$transitional = $options['Transitional_Processing'];
|
||||
$useSTD3ASCIIRules = $options['UseSTD3ASCIIRules'];
|
||||
|
||||
foreach ($codePoints as $codePoint) {
|
||||
$data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules);
|
||||
$status = $data['status'];
|
||||
|
||||
if ('valid' === $status || (!$transitional && 'deviation' === $status)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$info->errors |= self::ERROR_DISALLOWED;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
// Step 7. If CheckJoiners, the label must satisify the ContextJ rules from Appendix A, in
|
||||
// The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)
|
||||
// [IDNA2008].
|
||||
if ($options['CheckJoiners'] && !self::isValidContextJ($codePoints, $label)) {
|
||||
$info->errors |= self::ERROR_CONTEXTJ;
|
||||
}
|
||||
|
||||
// Step 8. If CheckBidi, and if the domain name is a Bidi domain name, then the label must
|
||||
// satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
|
||||
if ($options['CheckBidi'] && (!$info->bidiDomain || $info->validBidiDomain)) {
|
||||
self::validateBidiLabel($label, $info);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://tools.ietf.org/html/rfc3492#section-6.2
|
||||
*
|
||||
* @param string $input
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function punycodeDecode($input)
|
||||
{
|
||||
$n = self::INITIAL_N;
|
||||
$out = 0;
|
||||
$i = 0;
|
||||
$bias = self::INITIAL_BIAS;
|
||||
$lastDelimIndex = strrpos($input, self::DELIMITER);
|
||||
$b = false === $lastDelimIndex ? 0 : $lastDelimIndex;
|
||||
$inputLength = \strlen($input);
|
||||
$output = [];
|
||||
$bytes = array_map('ord', str_split($input));
|
||||
|
||||
for ($j = 0; $j < $b; ++$j) {
|
||||
if ($bytes[$j] > 0x7F) {
|
||||
throw new Exception('Invalid input');
|
||||
}
|
||||
|
||||
$output[$out++] = $input[$j];
|
||||
}
|
||||
|
||||
if ($b > 0) {
|
||||
++$b;
|
||||
}
|
||||
|
||||
for ($in = $b; $in < $inputLength; ++$out) {
|
||||
$oldi = $i;
|
||||
$w = 1;
|
||||
|
||||
for ($k = self::BASE; /* no condition */; $k += self::BASE) {
|
||||
if ($in >= $inputLength) {
|
||||
throw new Exception('Invalid input');
|
||||
}
|
||||
|
||||
$digit = self::$basicToDigit[$bytes[$in++] & 0xFF];
|
||||
|
||||
if ($digit < 0) {
|
||||
throw new Exception('Invalid input');
|
||||
}
|
||||
|
||||
if ($digit > intdiv(self::MAX_INT - $i, $w)) {
|
||||
throw new Exception('Integer overflow');
|
||||
}
|
||||
|
||||
$i += $digit * $w;
|
||||
|
||||
if ($k <= $bias) {
|
||||
$t = self::TMIN;
|
||||
} elseif ($k >= $bias + self::TMAX) {
|
||||
$t = self::TMAX;
|
||||
} else {
|
||||
$t = $k - $bias;
|
||||
}
|
||||
|
||||
if ($digit < $t) {
|
||||
break;
|
||||
}
|
||||
|
||||
$baseMinusT = self::BASE - $t;
|
||||
|
||||
if ($w > intdiv(self::MAX_INT, $baseMinusT)) {
|
||||
throw new Exception('Integer overflow');
|
||||
}
|
||||
|
||||
$w *= $baseMinusT;
|
||||
}
|
||||
|
||||
$outPlusOne = $out + 1;
|
||||
$bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi);
|
||||
|
||||
if (intdiv($i, $outPlusOne) > self::MAX_INT - $n) {
|
||||
throw new Exception('Integer overflow');
|
||||
}
|
||||
|
||||
$n += intdiv($i, $outPlusOne);
|
||||
$i %= $outPlusOne;
|
||||
array_splice($output, $i++, 0, [mb_chr($n, 'utf-8')]);
|
||||
}
|
||||
|
||||
return implode('', $output);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://tools.ietf.org/html/rfc3492#section-6.3
|
||||
*
|
||||
* @param string $input
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function punycodeEncode($input)
|
||||
{
|
||||
$n = self::INITIAL_N;
|
||||
$delta = 0;
|
||||
$out = 0;
|
||||
$bias = self::INITIAL_BIAS;
|
||||
$inputLength = 0;
|
||||
$output = '';
|
||||
$iter = self::utf8Decode($input);
|
||||
|
||||
foreach ($iter as $codePoint) {
|
||||
++$inputLength;
|
||||
|
||||
if ($codePoint < 0x80) {
|
||||
$output .= \chr($codePoint);
|
||||
++$out;
|
||||
}
|
||||
}
|
||||
|
||||
$h = $out;
|
||||
$b = $out;
|
||||
|
||||
if ($b > 0) {
|
||||
$output .= self::DELIMITER;
|
||||
++$out;
|
||||
}
|
||||
|
||||
while ($h < $inputLength) {
|
||||
$m = self::MAX_INT;
|
||||
|
||||
foreach ($iter as $codePoint) {
|
||||
if ($codePoint >= $n && $codePoint < $m) {
|
||||
$m = $codePoint;
|
||||
}
|
||||
}
|
||||
|
||||
if ($m - $n > intdiv(self::MAX_INT - $delta, $h + 1)) {
|
||||
throw new Exception('Integer overflow');
|
||||
}
|
||||
|
||||
$delta += ($m - $n) * ($h + 1);
|
||||
$n = $m;
|
||||
|
||||
foreach ($iter as $codePoint) {
|
||||
if ($codePoint < $n && 0 === ++$delta) {
|
||||
throw new Exception('Integer overflow');
|
||||
}
|
||||
|
||||
if ($codePoint === $n) {
|
||||
$q = $delta;
|
||||
|
||||
for ($k = self::BASE; /* no condition */; $k += self::BASE) {
|
||||
if ($k <= $bias) {
|
||||
$t = self::TMIN;
|
||||
} elseif ($k >= $bias + self::TMAX) {
|
||||
$t = self::TMAX;
|
||||
} else {
|
||||
$t = $k - $bias;
|
||||
}
|
||||
|
||||
if ($q < $t) {
|
||||
break;
|
||||
}
|
||||
|
||||
$qMinusT = $q - $t;
|
||||
$baseMinusT = self::BASE - $t;
|
||||
$output .= self::encodeDigit($t + ($qMinusT) % ($baseMinusT), false);
|
||||
++$out;
|
||||
$q = intdiv($qMinusT, $baseMinusT);
|
||||
}
|
||||
|
||||
$output .= self::encodeDigit($q, false);
|
||||
++$out;
|
||||
$bias = self::adaptBias($delta, $h + 1, $h === $b);
|
||||
$delta = 0;
|
||||
++$h;
|
||||
}
|
||||
}
|
||||
|
||||
++$delta;
|
||||
++$n;
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://tools.ietf.org/html/rfc3492#section-6.1
|
||||
*
|
||||
* @param int $delta
|
||||
* @param int $numPoints
|
||||
* @param bool $firstTime
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
private static function adaptBias($delta, $numPoints, $firstTime)
|
||||
{
|
||||
// xxx >> 1 is a faster way of doing intdiv(xxx, 2)
|
||||
$delta = $firstTime ? intdiv($delta, self::DAMP) : $delta >> 1;
|
||||
$delta += intdiv($delta, $numPoints);
|
||||
$k = 0;
|
||||
|
||||
while ($delta > ((self::BASE - self::TMIN) * self::TMAX) >> 1) {
|
||||
$delta = intdiv($delta, self::BASE - self::TMIN);
|
||||
$k += self::BASE;
|
||||
}
|
||||
|
||||
return $k + intdiv((self::BASE - self::TMIN + 1) * $delta, $delta + self::SKEW);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $d
|
||||
* @param bool $flag
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function encodeDigit($d, $flag)
|
||||
{
|
||||
return \chr($d + 22 + 75 * ($d < 26 ? 1 : 0) - (($flag ? 1 : 0) << 5));
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes a UTF-8 encoded string and converts it into a series of integer code points. Any
|
||||
* invalid byte sequences will be replaced by a U+FFFD replacement code point.
|
||||
*
|
||||
* @see https://encoding.spec.whatwg.org/#utf-8-decoder
|
||||
*
|
||||
* @param string $input
|
||||
*
|
||||
* @return array<int, int>
|
||||
*/
|
||||
private static function utf8Decode($input)
|
||||
{
|
||||
$bytesSeen = 0;
|
||||
$bytesNeeded = 0;
|
||||
$lowerBoundary = 0x80;
|
||||
$upperBoundary = 0xBF;
|
||||
$codePoint = 0;
|
||||
$codePoints = [];
|
||||
$length = \strlen($input);
|
||||
|
||||
for ($i = 0; $i < $length; ++$i) {
|
||||
$byte = \ord($input[$i]);
|
||||
|
||||
if (0 === $bytesNeeded) {
|
||||
if ($byte >= 0x00 && $byte <= 0x7F) {
|
||||
$codePoints[] = $byte;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($byte >= 0xC2 && $byte <= 0xDF) {
|
||||
$bytesNeeded = 1;
|
||||
$codePoint = $byte & 0x1F;
|
||||
} elseif ($byte >= 0xE0 && $byte <= 0xEF) {
|
||||
if (0xE0 === $byte) {
|
||||
$lowerBoundary = 0xA0;
|
||||
} elseif (0xED === $byte) {
|
||||
$upperBoundary = 0x9F;
|
||||
}
|
||||
|
||||
$bytesNeeded = 2;
|
||||
$codePoint = $byte & 0xF;
|
||||
} elseif ($byte >= 0xF0 && $byte <= 0xF4) {
|
||||
if (0xF0 === $byte) {
|
||||
$lowerBoundary = 0x90;
|
||||
} elseif (0xF4 === $byte) {
|
||||
$upperBoundary = 0x8F;
|
||||
}
|
||||
|
||||
$bytesNeeded = 3;
|
||||
$codePoint = $byte & 0x7;
|
||||
} else {
|
||||
$codePoints[] = 0xFFFD;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($byte < $lowerBoundary || $byte > $upperBoundary) {
|
||||
$codePoint = 0;
|
||||
$bytesNeeded = 0;
|
||||
$bytesSeen = 0;
|
||||
$lowerBoundary = 0x80;
|
||||
$upperBoundary = 0xBF;
|
||||
--$i;
|
||||
$codePoints[] = 0xFFFD;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$lowerBoundary = 0x80;
|
||||
$upperBoundary = 0xBF;
|
||||
$codePoint = ($codePoint << 6) | ($byte & 0x3F);
|
||||
|
||||
if (++$bytesSeen !== $bytesNeeded) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$codePoints[] = $codePoint;
|
||||
$codePoint = 0;
|
||||
$bytesNeeded = 0;
|
||||
$bytesSeen = 0;
|
||||
}
|
||||
|
||||
// String unexpectedly ended, so append a U+FFFD code point.
|
||||
if (0 !== $bytesNeeded) {
|
||||
$codePoints[] = 0xFFFD;
|
||||
}
|
||||
|
||||
return $codePoints;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $codePoint
|
||||
* @param bool $useSTD3ASCIIRules
|
||||
*
|
||||
* @return array{status: string, mapping?: string}
|
||||
*/
|
||||
private static function lookupCodePointStatus($codePoint, $useSTD3ASCIIRules)
|
||||
{
|
||||
if (!self::$mappingTableLoaded) {
|
||||
self::$mappingTableLoaded = true;
|
||||
self::$mapped = require __DIR__.'/Resources/unidata/mapped.php';
|
||||
self::$ignored = require __DIR__.'/Resources/unidata/ignored.php';
|
||||
self::$deviation = require __DIR__.'/Resources/unidata/deviation.php';
|
||||
self::$disallowed = require __DIR__.'/Resources/unidata/disallowed.php';
|
||||
self::$disallowed_STD3_mapped = require __DIR__.'/Resources/unidata/disallowed_STD3_mapped.php';
|
||||
self::$disallowed_STD3_valid = require __DIR__.'/Resources/unidata/disallowed_STD3_valid.php';
|
||||
}
|
||||
|
||||
if (isset(self::$mapped[$codePoint])) {
|
||||
return ['status' => 'mapped', 'mapping' => self::$mapped[$codePoint]];
|
||||
}
|
||||
|
||||
if (isset(self::$ignored[$codePoint])) {
|
||||
return ['status' => 'ignored'];
|
||||
}
|
||||
|
||||
if (isset(self::$deviation[$codePoint])) {
|
||||
return ['status' => 'deviation', 'mapping' => self::$deviation[$codePoint]];
|
||||
}
|
||||
|
||||
if (isset(self::$disallowed[$codePoint]) || DisallowedRanges::inRange($codePoint)) {
|
||||
return ['status' => 'disallowed'];
|
||||
}
|
||||
|
||||
$isDisallowedMapped = isset(self::$disallowed_STD3_mapped[$codePoint]);
|
||||
|
||||
if ($isDisallowedMapped || isset(self::$disallowed_STD3_valid[$codePoint])) {
|
||||
$status = 'disallowed';
|
||||
|
||||
if (!$useSTD3ASCIIRules) {
|
||||
$status = $isDisallowedMapped ? 'mapped' : 'valid';
|
||||
}
|
||||
|
||||
if ($isDisallowedMapped) {
|
||||
return ['status' => $status, 'mapping' => self::$disallowed_STD3_mapped[$codePoint]];
|
||||
}
|
||||
|
||||
return ['status' => $status];
|
||||
}
|
||||
|
||||
return ['status' => 'valid'];
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com> and Trevor Rowbotham <trevor.rowbotham@pm.me>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Polyfill\Intl\Idn;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class Info
|
||||
{
|
||||
public $bidiDomain = false;
|
||||
public $errors = 0;
|
||||
public $validBidiDomain = true;
|
||||
public $transitionalDifferent = false;
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2018-2019 Fabien Potencier and Trevor Rowbotham <trevor.rowbotham@pm.me>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
Symfony Polyfill / Intl: Idn
|
||||
============================
|
||||
|
||||
This component provides [`idn_to_ascii`](https://php.net/idn-to-ascii) and [`idn_to_utf8`](https://php.net/idn-to-utf8) functions to users who run php versions without the [Intl](https://php.net/intl) extension.
|
||||
|
||||
More information can be found in the
|
||||
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
This library is released under the [MIT license](LICENSE).
|
||||
@@ -0,0 +1,375 @@
|
||||
<?php
|
||||
|
||||
namespace Symfony\Polyfill\Intl\Idn\Resources\unidata;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class DisallowedRanges
|
||||
{
|
||||
/**
|
||||
* @param int $codePoint
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function inRange($codePoint)
|
||||
{
|
||||
if ($codePoint >= 128 && $codePoint <= 159) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 2155 && $codePoint <= 2207) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 3676 && $codePoint <= 3712) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 3808 && $codePoint <= 3839) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 4059 && $codePoint <= 4095) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 4256 && $codePoint <= 4293) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 6849 && $codePoint <= 6911) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 11859 && $codePoint <= 11903) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 42955 && $codePoint <= 42996) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 55296 && $codePoint <= 57343) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 57344 && $codePoint <= 63743) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 64218 && $codePoint <= 64255) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 64976 && $codePoint <= 65007) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 65630 && $codePoint <= 65663) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 65953 && $codePoint <= 65999) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 66046 && $codePoint <= 66175) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 66518 && $codePoint <= 66559) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 66928 && $codePoint <= 67071) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 67432 && $codePoint <= 67583) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 67760 && $codePoint <= 67807) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 67904 && $codePoint <= 67967) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 68256 && $codePoint <= 68287) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 68528 && $codePoint <= 68607) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 68681 && $codePoint <= 68735) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 68922 && $codePoint <= 69215) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 69298 && $codePoint <= 69375) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 69466 && $codePoint <= 69551) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 70207 && $codePoint <= 70271) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 70517 && $codePoint <= 70655) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 70874 && $codePoint <= 71039) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 71134 && $codePoint <= 71167) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 71370 && $codePoint <= 71423) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 71488 && $codePoint <= 71679) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 71740 && $codePoint <= 71839) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 72026 && $codePoint <= 72095) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 72441 && $codePoint <= 72703) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 72887 && $codePoint <= 72959) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 73130 && $codePoint <= 73439) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 73465 && $codePoint <= 73647) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 74650 && $codePoint <= 74751) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 75076 && $codePoint <= 77823) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 78905 && $codePoint <= 82943) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 83527 && $codePoint <= 92159) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 92784 && $codePoint <= 92879) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 93072 && $codePoint <= 93759) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 93851 && $codePoint <= 93951) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 94112 && $codePoint <= 94175) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 101590 && $codePoint <= 101631) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 101641 && $codePoint <= 110591) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 110879 && $codePoint <= 110927) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 111356 && $codePoint <= 113663) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 113828 && $codePoint <= 118783) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 119366 && $codePoint <= 119519) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 119673 && $codePoint <= 119807) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 121520 && $codePoint <= 122879) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 122923 && $codePoint <= 123135) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 123216 && $codePoint <= 123583) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 123648 && $codePoint <= 124927) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 125143 && $codePoint <= 125183) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 125280 && $codePoint <= 126064) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 126133 && $codePoint <= 126208) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 126270 && $codePoint <= 126463) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 126652 && $codePoint <= 126703) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 126706 && $codePoint <= 126975) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 127406 && $codePoint <= 127461) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 127590 && $codePoint <= 127743) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 129202 && $codePoint <= 129279) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 129751 && $codePoint <= 129791) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 129995 && $codePoint <= 130031) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 130042 && $codePoint <= 131069) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 173790 && $codePoint <= 173823) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 191457 && $codePoint <= 194559) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 195102 && $codePoint <= 196605) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 201547 && $codePoint <= 262141) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 262144 && $codePoint <= 327677) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 327680 && $codePoint <= 393213) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 393216 && $codePoint <= 458749) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 458752 && $codePoint <= 524285) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 524288 && $codePoint <= 589821) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 589824 && $codePoint <= 655357) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 655360 && $codePoint <= 720893) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 720896 && $codePoint <= 786429) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 786432 && $codePoint <= 851965) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 851968 && $codePoint <= 917501) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 917536 && $codePoint <= 917631) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 917632 && $codePoint <= 917759) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 918000 && $codePoint <= 983037) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 983040 && $codePoint <= 1048573) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($codePoint >= 1048576 && $codePoint <= 1114109) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
return array (
|
||||
223 => 'ss',
|
||||
962 => 'σ',
|
||||
8204 => '',
|
||||
8205 => '',
|
||||
);
|
||||
@@ -0,0 +1,2638 @@
|
||||
<?php
|
||||
|
||||
return array (
|
||||
888 => true,
|
||||
889 => true,
|
||||
896 => true,
|
||||
897 => true,
|
||||
898 => true,
|
||||
899 => true,
|
||||
907 => true,
|
||||
909 => true,
|
||||
930 => true,
|
||||
1216 => true,
|
||||
1328 => true,
|
||||
1367 => true,
|
||||
1368 => true,
|
||||
1419 => true,
|
||||
1420 => true,
|
||||
1424 => true,
|
||||
1480 => true,
|
||||
1481 => true,
|
||||
1482 => true,
|
||||
1483 => true,
|
||||
1484 => true,
|
||||
1485 => true,
|
||||
1486 => true,
|
||||
1487 => true,
|
||||
1515 => true,
|
||||
1516 => true,
|
||||
1517 => true,
|
||||
1518 => true,
|
||||
1525 => true,
|
||||
1526 => true,
|
||||
1527 => true,
|
||||
1528 => true,
|
||||
1529 => true,
|
||||
1530 => true,
|
||||
1531 => true,
|
||||
1532 => true,
|
||||
1533 => true,
|
||||
1534 => true,
|
||||
1535 => true,
|
||||
1536 => true,
|
||||
1537 => true,
|
||||
1538 => true,
|
||||
1539 => true,
|
||||
1540 => true,
|
||||
1541 => true,
|
||||
1564 => true,
|
||||
1565 => true,
|
||||
1757 => true,
|
||||
1806 => true,
|
||||
1807 => true,
|
||||
1867 => true,
|
||||
1868 => true,
|
||||
1970 => true,
|
||||
1971 => true,
|
||||
1972 => true,
|
||||
1973 => true,
|
||||
1974 => true,
|
||||
1975 => true,
|
||||
1976 => true,
|
||||
1977 => true,
|
||||
1978 => true,
|
||||
1979 => true,
|
||||
1980 => true,
|
||||
1981 => true,
|
||||
1982 => true,
|
||||
1983 => true,
|
||||
2043 => true,
|
||||
2044 => true,
|
||||
2094 => true,
|
||||
2095 => true,
|
||||
2111 => true,
|
||||
2140 => true,
|
||||
2141 => true,
|
||||
2143 => true,
|
||||
2229 => true,
|
||||
2248 => true,
|
||||
2249 => true,
|
||||
2250 => true,
|
||||
2251 => true,
|
||||
2252 => true,
|
||||
2253 => true,
|
||||
2254 => true,
|
||||
2255 => true,
|
||||
2256 => true,
|
||||
2257 => true,
|
||||
2258 => true,
|
||||
2274 => true,
|
||||
2436 => true,
|
||||
2445 => true,
|
||||
2446 => true,
|
||||
2449 => true,
|
||||
2450 => true,
|
||||
2473 => true,
|
||||
2481 => true,
|
||||
2483 => true,
|
||||
2484 => true,
|
||||
2485 => true,
|
||||
2490 => true,
|
||||
2491 => true,
|
||||
2501 => true,
|
||||
2502 => true,
|
||||
2505 => true,
|
||||
2506 => true,
|
||||
2511 => true,
|
||||
2512 => true,
|
||||
2513 => true,
|
||||
2514 => true,
|
||||
2515 => true,
|
||||
2516 => true,
|
||||
2517 => true,
|
||||
2518 => true,
|
||||
2520 => true,
|
||||
2521 => true,
|
||||
2522 => true,
|
||||
2523 => true,
|
||||
2526 => true,
|
||||
2532 => true,
|
||||
2533 => true,
|
||||
2559 => true,
|
||||
2560 => true,
|
||||
2564 => true,
|
||||
2571 => true,
|
||||
2572 => true,
|
||||
2573 => true,
|
||||
2574 => true,
|
||||
2577 => true,
|
||||
2578 => true,
|
||||
2601 => true,
|
||||
2609 => true,
|
||||
2612 => true,
|
||||
2615 => true,
|
||||
2618 => true,
|
||||
2619 => true,
|
||||
2621 => true,
|
||||
2627 => true,
|
||||
2628 => true,
|
||||
2629 => true,
|
||||
2630 => true,
|
||||
2633 => true,
|
||||
2634 => true,
|
||||
2638 => true,
|
||||
2639 => true,
|
||||
2640 => true,
|
||||
2642 => true,
|
||||
2643 => true,
|
||||
2644 => true,
|
||||
2645 => true,
|
||||
2646 => true,
|
||||
2647 => true,
|
||||
2648 => true,
|
||||
2653 => true,
|
||||
2655 => true,
|
||||
2656 => true,
|
||||
2657 => true,
|
||||
2658 => true,
|
||||
2659 => true,
|
||||
2660 => true,
|
||||
2661 => true,
|
||||
2679 => true,
|
||||
2680 => true,
|
||||
2681 => true,
|
||||
2682 => true,
|
||||
2683 => true,
|
||||
2684 => true,
|
||||
2685 => true,
|
||||
2686 => true,
|
||||
2687 => true,
|
||||
2688 => true,
|
||||
2692 => true,
|
||||
2702 => true,
|
||||
2706 => true,
|
||||
2729 => true,
|
||||
2737 => true,
|
||||
2740 => true,
|
||||
2746 => true,
|
||||
2747 => true,
|
||||
2758 => true,
|
||||
2762 => true,
|
||||
2766 => true,
|
||||
2767 => true,
|
||||
2769 => true,
|
||||
2770 => true,
|
||||
2771 => true,
|
||||
2772 => true,
|
||||
2773 => true,
|
||||
2774 => true,
|
||||
2775 => true,
|
||||
2776 => true,
|
||||
2777 => true,
|
||||
2778 => true,
|
||||
2779 => true,
|
||||
2780 => true,
|
||||
2781 => true,
|
||||
2782 => true,
|
||||
2783 => true,
|
||||
2788 => true,
|
||||
2789 => true,
|
||||
2802 => true,
|
||||
2803 => true,
|
||||
2804 => true,
|
||||
2805 => true,
|
||||
2806 => true,
|
||||
2807 => true,
|
||||
2808 => true,
|
||||
2816 => true,
|
||||
2820 => true,
|
||||
2829 => true,
|
||||
2830 => true,
|
||||
2833 => true,
|
||||
2834 => true,
|
||||
2857 => true,
|
||||
2865 => true,
|
||||
2868 => true,
|
||||
2874 => true,
|
||||
2875 => true,
|
||||
2885 => true,
|
||||
2886 => true,
|
||||
2889 => true,
|
||||
2890 => true,
|
||||
2894 => true,
|
||||
2895 => true,
|
||||
2896 => true,
|
||||
2897 => true,
|
||||
2898 => true,
|
||||
2899 => true,
|
||||
2900 => true,
|
||||
2904 => true,
|
||||
2905 => true,
|
||||
2906 => true,
|
||||
2907 => true,
|
||||
2910 => true,
|
||||
2916 => true,
|
||||
2917 => true,
|
||||
2936 => true,
|
||||
2937 => true,
|
||||
2938 => true,
|
||||
2939 => true,
|
||||
2940 => true,
|
||||
2941 => true,
|
||||
2942 => true,
|
||||
2943 => true,
|
||||
2944 => true,
|
||||
2945 => true,
|
||||
2948 => true,
|
||||
2955 => true,
|
||||
2956 => true,
|
||||
2957 => true,
|
||||
2961 => true,
|
||||
2966 => true,
|
||||
2967 => true,
|
||||
2968 => true,
|
||||
2971 => true,
|
||||
2973 => true,
|
||||
2976 => true,
|
||||
2977 => true,
|
||||
2978 => true,
|
||||
2981 => true,
|
||||
2982 => true,
|
||||
2983 => true,
|
||||
2987 => true,
|
||||
2988 => true,
|
||||
2989 => true,
|
||||
3002 => true,
|
||||
3003 => true,
|
||||
3004 => true,
|
||||
3005 => true,
|
||||
3011 => true,
|
||||
3012 => true,
|
||||
3013 => true,
|
||||
3017 => true,
|
||||
3022 => true,
|
||||
3023 => true,
|
||||
3025 => true,
|
||||
3026 => true,
|
||||
3027 => true,
|
||||
3028 => true,
|
||||
3029 => true,
|
||||
3030 => true,
|
||||
3032 => true,
|
||||
3033 => true,
|
||||
3034 => true,
|
||||
3035 => true,
|
||||
3036 => true,
|
||||
3037 => true,
|
||||
3038 => true,
|
||||
3039 => true,
|
||||
3040 => true,
|
||||
3041 => true,
|
||||
3042 => true,
|
||||
3043 => true,
|
||||
3044 => true,
|
||||
3045 => true,
|
||||
3067 => true,
|
||||
3068 => true,
|
||||
3069 => true,
|
||||
3070 => true,
|
||||
3071 => true,
|
||||
3085 => true,
|
||||
3089 => true,
|
||||
3113 => true,
|
||||
3130 => true,
|
||||
3131 => true,
|
||||
3132 => true,
|
||||
3141 => true,
|
||||
3145 => true,
|
||||
3150 => true,
|
||||
3151 => true,
|
||||
3152 => true,
|
||||
3153 => true,
|
||||
3154 => true,
|
||||
3155 => true,
|
||||
3156 => true,
|
||||
3159 => true,
|
||||
3163 => true,
|
||||
3164 => true,
|
||||
3165 => true,
|
||||
3166 => true,
|
||||
3167 => true,
|
||||
3172 => true,
|
||||
3173 => true,
|
||||
3184 => true,
|
||||
3185 => true,
|
||||
3186 => true,
|
||||
3187 => true,
|
||||
3188 => true,
|
||||
3189 => true,
|
||||
3190 => true,
|
||||
3213 => true,
|
||||
3217 => true,
|
||||
3241 => true,
|
||||
3252 => true,
|
||||
3258 => true,
|
||||
3259 => true,
|
||||
3269 => true,
|
||||
3273 => true,
|
||||
3278 => true,
|
||||
3279 => true,
|
||||
3280 => true,
|
||||
3281 => true,
|
||||
3282 => true,
|
||||
3283 => true,
|
||||
3284 => true,
|
||||
3287 => true,
|
||||
3288 => true,
|
||||
3289 => true,
|
||||
3290 => true,
|
||||
3291 => true,
|
||||
3292 => true,
|
||||
3293 => true,
|
||||
3295 => true,
|
||||
3300 => true,
|
||||
3301 => true,
|
||||
3312 => true,
|
||||
3315 => true,
|
||||
3316 => true,
|
||||
3317 => true,
|
||||
3318 => true,
|
||||
3319 => true,
|
||||
3320 => true,
|
||||
3321 => true,
|
||||
3322 => true,
|
||||
3323 => true,
|
||||
3324 => true,
|
||||
3325 => true,
|
||||
3326 => true,
|
||||
3327 => true,
|
||||
3341 => true,
|
||||
3345 => true,
|
||||
3397 => true,
|
||||
3401 => true,
|
||||
3408 => true,
|
||||
3409 => true,
|
||||
3410 => true,
|
||||
3411 => true,
|
||||
3428 => true,
|
||||
3429 => true,
|
||||
3456 => true,
|
||||
3460 => true,
|
||||
3479 => true,
|
||||
3480 => true,
|
||||
3481 => true,
|
||||
3506 => true,
|
||||
3516 => true,
|
||||
3518 => true,
|
||||
3519 => true,
|
||||
3527 => true,
|
||||
3528 => true,
|
||||
3529 => true,
|
||||
3531 => true,
|
||||
3532 => true,
|
||||
3533 => true,
|
||||
3534 => true,
|
||||
3541 => true,
|
||||
3543 => true,
|
||||
3552 => true,
|
||||
3553 => true,
|
||||
3554 => true,
|
||||
3555 => true,
|
||||
3556 => true,
|
||||
3557 => true,
|
||||
3568 => true,
|
||||
3569 => true,
|
||||
3573 => true,
|
||||
3574 => true,
|
||||
3575 => true,
|
||||
3576 => true,
|
||||
3577 => true,
|
||||
3578 => true,
|
||||
3579 => true,
|
||||
3580 => true,
|
||||
3581 => true,
|
||||
3582 => true,
|
||||
3583 => true,
|
||||
3584 => true,
|
||||
3643 => true,
|
||||
3644 => true,
|
||||
3645 => true,
|
||||
3646 => true,
|
||||
3715 => true,
|
||||
3717 => true,
|
||||
3723 => true,
|
||||
3748 => true,
|
||||
3750 => true,
|
||||
3774 => true,
|
||||
3775 => true,
|
||||
3781 => true,
|
||||
3783 => true,
|
||||
3790 => true,
|
||||
3791 => true,
|
||||
3802 => true,
|
||||
3803 => true,
|
||||
3912 => true,
|
||||
3949 => true,
|
||||
3950 => true,
|
||||
3951 => true,
|
||||
3952 => true,
|
||||
3992 => true,
|
||||
4029 => true,
|
||||
4045 => true,
|
||||
4294 => true,
|
||||
4296 => true,
|
||||
4297 => true,
|
||||
4298 => true,
|
||||
4299 => true,
|
||||
4300 => true,
|
||||
4302 => true,
|
||||
4303 => true,
|
||||
4447 => true,
|
||||
4448 => true,
|
||||
4681 => true,
|
||||
4686 => true,
|
||||
4687 => true,
|
||||
4695 => true,
|
||||
4697 => true,
|
||||
4702 => true,
|
||||
4703 => true,
|
||||
4745 => true,
|
||||
4750 => true,
|
||||
4751 => true,
|
||||
4785 => true,
|
||||
4790 => true,
|
||||
4791 => true,
|
||||
4799 => true,
|
||||
4801 => true,
|
||||
4806 => true,
|
||||
4807 => true,
|
||||
4823 => true,
|
||||
4881 => true,
|
||||
4886 => true,
|
||||
4887 => true,
|
||||
4955 => true,
|
||||
4956 => true,
|
||||
4989 => true,
|
||||
4990 => true,
|
||||
4991 => true,
|
||||
5018 => true,
|
||||
5019 => true,
|
||||
5020 => true,
|
||||
5021 => true,
|
||||
5022 => true,
|
||||
5023 => true,
|
||||
5110 => true,
|
||||
5111 => true,
|
||||
5118 => true,
|
||||
5119 => true,
|
||||
5760 => true,
|
||||
5789 => true,
|
||||
5790 => true,
|
||||
5791 => true,
|
||||
5881 => true,
|
||||
5882 => true,
|
||||
5883 => true,
|
||||
5884 => true,
|
||||
5885 => true,
|
||||
5886 => true,
|
||||
5887 => true,
|
||||
5901 => true,
|
||||
5909 => true,
|
||||
5910 => true,
|
||||
5911 => true,
|
||||
5912 => true,
|
||||
5913 => true,
|
||||
5914 => true,
|
||||
5915 => true,
|
||||
5916 => true,
|
||||
5917 => true,
|
||||
5918 => true,
|
||||
5919 => true,
|
||||
5943 => true,
|
||||
5944 => true,
|
||||
5945 => true,
|
||||
5946 => true,
|
||||
5947 => true,
|
||||
5948 => true,
|
||||
5949 => true,
|
||||
5950 => true,
|
||||
5951 => true,
|
||||
5972 => true,
|
||||
5973 => true,
|
||||
5974 => true,
|
||||
5975 => true,
|
||||
5976 => true,
|
||||
5977 => true,
|
||||
5978 => true,
|
||||
5979 => true,
|
||||
5980 => true,
|
||||
5981 => true,
|
||||
5982 => true,
|
||||
5983 => true,
|
||||
5997 => true,
|
||||
6001 => true,
|
||||
6004 => true,
|
||||
6005 => true,
|
||||
6006 => true,
|
||||
6007 => true,
|
||||
6008 => true,
|
||||
6009 => true,
|
||||
6010 => true,
|
||||
6011 => true,
|
||||
6012 => true,
|
||||
6013 => true,
|
||||
6014 => true,
|
||||
6015 => true,
|
||||
6068 => true,
|
||||
6069 => true,
|
||||
6110 => true,
|
||||
6111 => true,
|
||||
6122 => true,
|
||||
6123 => true,
|
||||
6124 => true,
|
||||
6125 => true,
|
||||
6126 => true,
|
||||
6127 => true,
|
||||
6138 => true,
|
||||
6139 => true,
|
||||
6140 => true,
|
||||
6141 => true,
|
||||
6142 => true,
|
||||
6143 => true,
|
||||
6150 => true,
|
||||
6158 => true,
|
||||
6159 => true,
|
||||
6170 => true,
|
||||
6171 => true,
|
||||
6172 => true,
|
||||
6173 => true,
|
||||
6174 => true,
|
||||
6175 => true,
|
||||
6265 => true,
|
||||
6266 => true,
|
||||
6267 => true,
|
||||
6268 => true,
|
||||
6269 => true,
|
||||
6270 => true,
|
||||
6271 => true,
|
||||
6315 => true,
|
||||
6316 => true,
|
||||
6317 => true,
|
||||
6318 => true,
|
||||
6319 => true,
|
||||
6390 => true,
|
||||
6391 => true,
|
||||
6392 => true,
|
||||
6393 => true,
|
||||
6394 => true,
|
||||
6395 => true,
|
||||
6396 => true,
|
||||
6397 => true,
|
||||
6398 => true,
|
||||
6399 => true,
|
||||
6431 => true,
|
||||
6444 => true,
|
||||
6445 => true,
|
||||
6446 => true,
|
||||
6447 => true,
|
||||
6460 => true,
|
||||
6461 => true,
|
||||
6462 => true,
|
||||
6463 => true,
|
||||
6465 => true,
|
||||
6466 => true,
|
||||
6467 => true,
|
||||
6510 => true,
|
||||
6511 => true,
|
||||
6517 => true,
|
||||
6518 => true,
|
||||
6519 => true,
|
||||
6520 => true,
|
||||
6521 => true,
|
||||
6522 => true,
|
||||
6523 => true,
|
||||
6524 => true,
|
||||
6525 => true,
|
||||
6526 => true,
|
||||
6527 => true,
|
||||
6572 => true,
|
||||
6573 => true,
|
||||
6574 => true,
|
||||
6575 => true,
|
||||
6602 => true,
|
||||
6603 => true,
|
||||
6604 => true,
|
||||
6605 => true,
|
||||
6606 => true,
|
||||
6607 => true,
|
||||
6619 => true,
|
||||
6620 => true,
|
||||
6621 => true,
|
||||
6684 => true,
|
||||
6685 => true,
|
||||
6751 => true,
|
||||
6781 => true,
|
||||
6782 => true,
|
||||
6794 => true,
|
||||
6795 => true,
|
||||
6796 => true,
|
||||
6797 => true,
|
||||
6798 => true,
|
||||
6799 => true,
|
||||
6810 => true,
|
||||
6811 => true,
|
||||
6812 => true,
|
||||
6813 => true,
|
||||
6814 => true,
|
||||
6815 => true,
|
||||
6830 => true,
|
||||
6831 => true,
|
||||
6988 => true,
|
||||
6989 => true,
|
||||
6990 => true,
|
||||
6991 => true,
|
||||
7037 => true,
|
||||
7038 => true,
|
||||
7039 => true,
|
||||
7156 => true,
|
||||
7157 => true,
|
||||
7158 => true,
|
||||
7159 => true,
|
||||
7160 => true,
|
||||
7161 => true,
|
||||
7162 => true,
|
||||
7163 => true,
|
||||
7224 => true,
|
||||
7225 => true,
|
||||
7226 => true,
|
||||
7242 => true,
|
||||
7243 => true,
|
||||
7244 => true,
|
||||
7305 => true,
|
||||
7306 => true,
|
||||
7307 => true,
|
||||
7308 => true,
|
||||
7309 => true,
|
||||
7310 => true,
|
||||
7311 => true,
|
||||
7355 => true,
|
||||
7356 => true,
|
||||
7368 => true,
|
||||
7369 => true,
|
||||
7370 => true,
|
||||
7371 => true,
|
||||
7372 => true,
|
||||
7373 => true,
|
||||
7374 => true,
|
||||
7375 => true,
|
||||
7419 => true,
|
||||
7420 => true,
|
||||
7421 => true,
|
||||
7422 => true,
|
||||
7423 => true,
|
||||
7674 => true,
|
||||
7958 => true,
|
||||
7959 => true,
|
||||
7966 => true,
|
||||
7967 => true,
|
||||
8006 => true,
|
||||
8007 => true,
|
||||
8014 => true,
|
||||
8015 => true,
|
||||
8024 => true,
|
||||
8026 => true,
|
||||
8028 => true,
|
||||
8030 => true,
|
||||
8062 => true,
|
||||
8063 => true,
|
||||
8117 => true,
|
||||
8133 => true,
|
||||
8148 => true,
|
||||
8149 => true,
|
||||
8156 => true,
|
||||
8176 => true,
|
||||
8177 => true,
|
||||
8181 => true,
|
||||
8191 => true,
|
||||
8206 => true,
|
||||
8207 => true,
|
||||
8228 => true,
|
||||
8229 => true,
|
||||
8230 => true,
|
||||
8232 => true,
|
||||
8233 => true,
|
||||
8234 => true,
|
||||
8235 => true,
|
||||
8236 => true,
|
||||
8237 => true,
|
||||
8238 => true,
|
||||
8289 => true,
|
||||
8290 => true,
|
||||
8291 => true,
|
||||
8293 => true,
|
||||
8294 => true,
|
||||
8295 => true,
|
||||
8296 => true,
|
||||
8297 => true,
|
||||
8298 => true,
|
||||
8299 => true,
|
||||
8300 => true,
|
||||
8301 => true,
|
||||
8302 => true,
|
||||
8303 => true,
|
||||
8306 => true,
|
||||
8307 => true,
|
||||
8335 => true,
|
||||
8349 => true,
|
||||
8350 => true,
|
||||
8351 => true,
|
||||
8384 => true,
|
||||
8385 => true,
|
||||
8386 => true,
|
||||
8387 => true,
|
||||
8388 => true,
|
||||
8389 => true,
|
||||
8390 => true,
|
||||
8391 => true,
|
||||
8392 => true,
|
||||
8393 => true,
|
||||
8394 => true,
|
||||
8395 => true,
|
||||
8396 => true,
|
||||
8397 => true,
|
||||
8398 => true,
|
||||
8399 => true,
|
||||
8433 => true,
|
||||
8434 => true,
|
||||
8435 => true,
|
||||
8436 => true,
|
||||
8437 => true,
|
||||
8438 => true,
|
||||
8439 => true,
|
||||
8440 => true,
|
||||
8441 => true,
|
||||
8442 => true,
|
||||
8443 => true,
|
||||
8444 => true,
|
||||
8445 => true,
|
||||
8446 => true,
|
||||
8447 => true,
|
||||
8498 => true,
|
||||
8579 => true,
|
||||
8588 => true,
|
||||
8589 => true,
|
||||
8590 => true,
|
||||
8591 => true,
|
||||
9255 => true,
|
||||
9256 => true,
|
||||
9257 => true,
|
||||
9258 => true,
|
||||
9259 => true,
|
||||
9260 => true,
|
||||
9261 => true,
|
||||
9262 => true,
|
||||
9263 => true,
|
||||
9264 => true,
|
||||
9265 => true,
|
||||
9266 => true,
|
||||
9267 => true,
|
||||
9268 => true,
|
||||
9269 => true,
|
||||
9270 => true,
|
||||
9271 => true,
|
||||
9272 => true,
|
||||
9273 => true,
|
||||
9274 => true,
|
||||
9275 => true,
|
||||
9276 => true,
|
||||
9277 => true,
|
||||
9278 => true,
|
||||
9279 => true,
|
||||
9291 => true,
|
||||
9292 => true,
|
||||
9293 => true,
|
||||
9294 => true,
|
||||
9295 => true,
|
||||
9296 => true,
|
||||
9297 => true,
|
||||
9298 => true,
|
||||
9299 => true,
|
||||
9300 => true,
|
||||
9301 => true,
|
||||
9302 => true,
|
||||
9303 => true,
|
||||
9304 => true,
|
||||
9305 => true,
|
||||
9306 => true,
|
||||
9307 => true,
|
||||
9308 => true,
|
||||
9309 => true,
|
||||
9310 => true,
|
||||
9311 => true,
|
||||
9352 => true,
|
||||
9353 => true,
|
||||
9354 => true,
|
||||
9355 => true,
|
||||
9356 => true,
|
||||
9357 => true,
|
||||
9358 => true,
|
||||
9359 => true,
|
||||
9360 => true,
|
||||
9361 => true,
|
||||
9362 => true,
|
||||
9363 => true,
|
||||
9364 => true,
|
||||
9365 => true,
|
||||
9366 => true,
|
||||
9367 => true,
|
||||
9368 => true,
|
||||
9369 => true,
|
||||
9370 => true,
|
||||
9371 => true,
|
||||
11124 => true,
|
||||
11125 => true,
|
||||
11158 => true,
|
||||
11311 => true,
|
||||
11359 => true,
|
||||
11508 => true,
|
||||
11509 => true,
|
||||
11510 => true,
|
||||
11511 => true,
|
||||
11512 => true,
|
||||
11558 => true,
|
||||
11560 => true,
|
||||
11561 => true,
|
||||
11562 => true,
|
||||
11563 => true,
|
||||
11564 => true,
|
||||
11566 => true,
|
||||
11567 => true,
|
||||
11624 => true,
|
||||
11625 => true,
|
||||
11626 => true,
|
||||
11627 => true,
|
||||
11628 => true,
|
||||
11629 => true,
|
||||
11630 => true,
|
||||
11633 => true,
|
||||
11634 => true,
|
||||
11635 => true,
|
||||
11636 => true,
|
||||
11637 => true,
|
||||
11638 => true,
|
||||
11639 => true,
|
||||
11640 => true,
|
||||
11641 => true,
|
||||
11642 => true,
|
||||
11643 => true,
|
||||
11644 => true,
|
||||
11645 => true,
|
||||
11646 => true,
|
||||
11671 => true,
|
||||
11672 => true,
|
||||
11673 => true,
|
||||
11674 => true,
|
||||
11675 => true,
|
||||
11676 => true,
|
||||
11677 => true,
|
||||
11678 => true,
|
||||
11679 => true,
|
||||
11687 => true,
|
||||
11695 => true,
|
||||
11703 => true,
|
||||
11711 => true,
|
||||
11719 => true,
|
||||
11727 => true,
|
||||
11735 => true,
|
||||
11743 => true,
|
||||
11930 => true,
|
||||
12020 => true,
|
||||
12021 => true,
|
||||
12022 => true,
|
||||
12023 => true,
|
||||
12024 => true,
|
||||
12025 => true,
|
||||
12026 => true,
|
||||
12027 => true,
|
||||
12028 => true,
|
||||
12029 => true,
|
||||
12030 => true,
|
||||
12031 => true,
|
||||
12246 => true,
|
||||
12247 => true,
|
||||
12248 => true,
|
||||
12249 => true,
|
||||
12250 => true,
|
||||
12251 => true,
|
||||
12252 => true,
|
||||
12253 => true,
|
||||
12254 => true,
|
||||
12255 => true,
|
||||
12256 => true,
|
||||
12257 => true,
|
||||
12258 => true,
|
||||
12259 => true,
|
||||
12260 => true,
|
||||
12261 => true,
|
||||
12262 => true,
|
||||
12263 => true,
|
||||
12264 => true,
|
||||
12265 => true,
|
||||
12266 => true,
|
||||
12267 => true,
|
||||
12268 => true,
|
||||
12269 => true,
|
||||
12270 => true,
|
||||
12271 => true,
|
||||
12272 => true,
|
||||
12273 => true,
|
||||
12274 => true,
|
||||
12275 => true,
|
||||
12276 => true,
|
||||
12277 => true,
|
||||
12278 => true,
|
||||
12279 => true,
|
||||
12280 => true,
|
||||
12281 => true,
|
||||
12282 => true,
|
||||
12283 => true,
|
||||
12284 => true,
|
||||
12285 => true,
|
||||
12286 => true,
|
||||
12287 => true,
|
||||
12352 => true,
|
||||
12439 => true,
|
||||
12440 => true,
|
||||
12544 => true,
|
||||
12545 => true,
|
||||
12546 => true,
|
||||
12547 => true,
|
||||
12548 => true,
|
||||
12592 => true,
|
||||
12644 => true,
|
||||
12687 => true,
|
||||
12772 => true,
|
||||
12773 => true,
|
||||
12774 => true,
|
||||
12775 => true,
|
||||
12776 => true,
|
||||
12777 => true,
|
||||
12778 => true,
|
||||
12779 => true,
|
||||
12780 => true,
|
||||
12781 => true,
|
||||
12782 => true,
|
||||
12783 => true,
|
||||
12831 => true,
|
||||
13250 => true,
|
||||
13255 => true,
|
||||
13272 => true,
|
||||
40957 => true,
|
||||
40958 => true,
|
||||
40959 => true,
|
||||
42125 => true,
|
||||
42126 => true,
|
||||
42127 => true,
|
||||
42183 => true,
|
||||
42184 => true,
|
||||
42185 => true,
|
||||
42186 => true,
|
||||
42187 => true,
|
||||
42188 => true,
|
||||
42189 => true,
|
||||
42190 => true,
|
||||
42191 => true,
|
||||
42540 => true,
|
||||
42541 => true,
|
||||
42542 => true,
|
||||
42543 => true,
|
||||
42544 => true,
|
||||
42545 => true,
|
||||
42546 => true,
|
||||
42547 => true,
|
||||
42548 => true,
|
||||
42549 => true,
|
||||
42550 => true,
|
||||
42551 => true,
|
||||
42552 => true,
|
||||
42553 => true,
|
||||
42554 => true,
|
||||
42555 => true,
|
||||
42556 => true,
|
||||
42557 => true,
|
||||
42558 => true,
|
||||
42559 => true,
|
||||
42744 => true,
|
||||
42745 => true,
|
||||
42746 => true,
|
||||
42747 => true,
|
||||
42748 => true,
|
||||
42749 => true,
|
||||
42750 => true,
|
||||
42751 => true,
|
||||
42944 => true,
|
||||
42945 => true,
|
||||
43053 => true,
|
||||
43054 => true,
|
||||
43055 => true,
|
||||
43066 => true,
|
||||
43067 => true,
|
||||
43068 => true,
|
||||
43069 => true,
|
||||
43070 => true,
|
||||
43071 => true,
|
||||
43128 => true,
|
||||
43129 => true,
|
||||
43130 => true,
|
||||
43131 => true,
|
||||
43132 => true,
|
||||
43133 => true,
|
||||
43134 => true,
|
||||
43135 => true,
|
||||
43206 => true,
|
||||
43207 => true,
|
||||
43208 => true,
|
||||
43209 => true,
|
||||
43210 => true,
|
||||
43211 => true,
|
||||
43212 => true,
|
||||
43213 => true,
|
||||
43226 => true,
|
||||
43227 => true,
|
||||
43228 => true,
|
||||
43229 => true,
|
||||
43230 => true,
|
||||
43231 => true,
|
||||
43348 => true,
|
||||
43349 => true,
|
||||
43350 => true,
|
||||
43351 => true,
|
||||
43352 => true,
|
||||
43353 => true,
|
||||
43354 => true,
|
||||
43355 => true,
|
||||
43356 => true,
|
||||
43357 => true,
|
||||
43358 => true,
|
||||
43389 => true,
|
||||
43390 => true,
|
||||
43391 => true,
|
||||
43470 => true,
|
||||
43482 => true,
|
||||
43483 => true,
|
||||
43484 => true,
|
||||
43485 => true,
|
||||
43519 => true,
|
||||
43575 => true,
|
||||
43576 => true,
|
||||
43577 => true,
|
||||
43578 => true,
|
||||
43579 => true,
|
||||
43580 => true,
|
||||
43581 => true,
|
||||
43582 => true,
|
||||
43583 => true,
|
||||
43598 => true,
|
||||
43599 => true,
|
||||
43610 => true,
|
||||
43611 => true,
|
||||
43715 => true,
|
||||
43716 => true,
|
||||
43717 => true,
|
||||
43718 => true,
|
||||
43719 => true,
|
||||
43720 => true,
|
||||
43721 => true,
|
||||
43722 => true,
|
||||
43723 => true,
|
||||
43724 => true,
|
||||
43725 => true,
|
||||
43726 => true,
|
||||
43727 => true,
|
||||
43728 => true,
|
||||
43729 => true,
|
||||
43730 => true,
|
||||
43731 => true,
|
||||
43732 => true,
|
||||
43733 => true,
|
||||
43734 => true,
|
||||
43735 => true,
|
||||
43736 => true,
|
||||
43737 => true,
|
||||
43738 => true,
|
||||
43767 => true,
|
||||
43768 => true,
|
||||
43769 => true,
|
||||
43770 => true,
|
||||
43771 => true,
|
||||
43772 => true,
|
||||
43773 => true,
|
||||
43774 => true,
|
||||
43775 => true,
|
||||
43776 => true,
|
||||
43783 => true,
|
||||
43784 => true,
|
||||
43791 => true,
|
||||
43792 => true,
|
||||
43799 => true,
|
||||
43800 => true,
|
||||
43801 => true,
|
||||
43802 => true,
|
||||
43803 => true,
|
||||
43804 => true,
|
||||
43805 => true,
|
||||
43806 => true,
|
||||
43807 => true,
|
||||
43815 => true,
|
||||
43823 => true,
|
||||
43884 => true,
|
||||
43885 => true,
|
||||
43886 => true,
|
||||
43887 => true,
|
||||
44014 => true,
|
||||
44015 => true,
|
||||
44026 => true,
|
||||
44027 => true,
|
||||
44028 => true,
|
||||
44029 => true,
|
||||
44030 => true,
|
||||
44031 => true,
|
||||
55204 => true,
|
||||
55205 => true,
|
||||
55206 => true,
|
||||
55207 => true,
|
||||
55208 => true,
|
||||
55209 => true,
|
||||
55210 => true,
|
||||
55211 => true,
|
||||
55212 => true,
|
||||
55213 => true,
|
||||
55214 => true,
|
||||
55215 => true,
|
||||
55239 => true,
|
||||
55240 => true,
|
||||
55241 => true,
|
||||
55242 => true,
|
||||
55292 => true,
|
||||
55293 => true,
|
||||
55294 => true,
|
||||
55295 => true,
|
||||
64110 => true,
|
||||
64111 => true,
|
||||
64263 => true,
|
||||
64264 => true,
|
||||
64265 => true,
|
||||
64266 => true,
|
||||
64267 => true,
|
||||
64268 => true,
|
||||
64269 => true,
|
||||
64270 => true,
|
||||
64271 => true,
|
||||
64272 => true,
|
||||
64273 => true,
|
||||
64274 => true,
|
||||
64280 => true,
|
||||
64281 => true,
|
||||
64282 => true,
|
||||
64283 => true,
|
||||
64284 => true,
|
||||
64311 => true,
|
||||
64317 => true,
|
||||
64319 => true,
|
||||
64322 => true,
|
||||
64325 => true,
|
||||
64450 => true,
|
||||
64451 => true,
|
||||
64452 => true,
|
||||
64453 => true,
|
||||
64454 => true,
|
||||
64455 => true,
|
||||
64456 => true,
|
||||
64457 => true,
|
||||
64458 => true,
|
||||
64459 => true,
|
||||
64460 => true,
|
||||
64461 => true,
|
||||
64462 => true,
|
||||
64463 => true,
|
||||
64464 => true,
|
||||
64465 => true,
|
||||
64466 => true,
|
||||
64832 => true,
|
||||
64833 => true,
|
||||
64834 => true,
|
||||
64835 => true,
|
||||
64836 => true,
|
||||
64837 => true,
|
||||
64838 => true,
|
||||
64839 => true,
|
||||
64840 => true,
|
||||
64841 => true,
|
||||
64842 => true,
|
||||
64843 => true,
|
||||
64844 => true,
|
||||
64845 => true,
|
||||
64846 => true,
|
||||
64847 => true,
|
||||
64912 => true,
|
||||
64913 => true,
|
||||
64968 => true,
|
||||
64969 => true,
|
||||
64970 => true,
|
||||
64971 => true,
|
||||
64972 => true,
|
||||
64973 => true,
|
||||
64974 => true,
|
||||
64975 => true,
|
||||
65022 => true,
|
||||
65023 => true,
|
||||
65042 => true,
|
||||
65049 => true,
|
||||
65050 => true,
|
||||
65051 => true,
|
||||
65052 => true,
|
||||
65053 => true,
|
||||
65054 => true,
|
||||
65055 => true,
|
||||
65072 => true,
|
||||
65106 => true,
|
||||
65107 => true,
|
||||
65127 => true,
|
||||
65132 => true,
|
||||
65133 => true,
|
||||
65134 => true,
|
||||
65135 => true,
|
||||
65141 => true,
|
||||
65277 => true,
|
||||
65278 => true,
|
||||
65280 => true,
|
||||
65440 => true,
|
||||
65471 => true,
|
||||
65472 => true,
|
||||
65473 => true,
|
||||
65480 => true,
|
||||
65481 => true,
|
||||
65488 => true,
|
||||
65489 => true,
|
||||
65496 => true,
|
||||
65497 => true,
|
||||
65501 => true,
|
||||
65502 => true,
|
||||
65503 => true,
|
||||
65511 => true,
|
||||
65519 => true,
|
||||
65520 => true,
|
||||
65521 => true,
|
||||
65522 => true,
|
||||
65523 => true,
|
||||
65524 => true,
|
||||
65525 => true,
|
||||
65526 => true,
|
||||
65527 => true,
|
||||
65528 => true,
|
||||
65529 => true,
|
||||
65530 => true,
|
||||
65531 => true,
|
||||
65532 => true,
|
||||
65533 => true,
|
||||
65534 => true,
|
||||
65535 => true,
|
||||
65548 => true,
|
||||
65575 => true,
|
||||
65595 => true,
|
||||
65598 => true,
|
||||
65614 => true,
|
||||
65615 => true,
|
||||
65787 => true,
|
||||
65788 => true,
|
||||
65789 => true,
|
||||
65790 => true,
|
||||
65791 => true,
|
||||
65795 => true,
|
||||
65796 => true,
|
||||
65797 => true,
|
||||
65798 => true,
|
||||
65844 => true,
|
||||
65845 => true,
|
||||
65846 => true,
|
||||
65935 => true,
|
||||
65949 => true,
|
||||
65950 => true,
|
||||
65951 => true,
|
||||
66205 => true,
|
||||
66206 => true,
|
||||
66207 => true,
|
||||
66257 => true,
|
||||
66258 => true,
|
||||
66259 => true,
|
||||
66260 => true,
|
||||
66261 => true,
|
||||
66262 => true,
|
||||
66263 => true,
|
||||
66264 => true,
|
||||
66265 => true,
|
||||
66266 => true,
|
||||
66267 => true,
|
||||
66268 => true,
|
||||
66269 => true,
|
||||
66270 => true,
|
||||
66271 => true,
|
||||
66300 => true,
|
||||
66301 => true,
|
||||
66302 => true,
|
||||
66303 => true,
|
||||
66340 => true,
|
||||
66341 => true,
|
||||
66342 => true,
|
||||
66343 => true,
|
||||
66344 => true,
|
||||
66345 => true,
|
||||
66346 => true,
|
||||
66347 => true,
|
||||
66348 => true,
|
||||
66379 => true,
|
||||
66380 => true,
|
||||
66381 => true,
|
||||
66382 => true,
|
||||
66383 => true,
|
||||
66427 => true,
|
||||
66428 => true,
|
||||
66429 => true,
|
||||
66430 => true,
|
||||
66431 => true,
|
||||
66462 => true,
|
||||
66500 => true,
|
||||
66501 => true,
|
||||
66502 => true,
|
||||
66503 => true,
|
||||
66718 => true,
|
||||
66719 => true,
|
||||
66730 => true,
|
||||
66731 => true,
|
||||
66732 => true,
|
||||
66733 => true,
|
||||
66734 => true,
|
||||
66735 => true,
|
||||
66772 => true,
|
||||
66773 => true,
|
||||
66774 => true,
|
||||
66775 => true,
|
||||
66812 => true,
|
||||
66813 => true,
|
||||
66814 => true,
|
||||
66815 => true,
|
||||
66856 => true,
|
||||
66857 => true,
|
||||
66858 => true,
|
||||
66859 => true,
|
||||
66860 => true,
|
||||
66861 => true,
|
||||
66862 => true,
|
||||
66863 => true,
|
||||
66916 => true,
|
||||
66917 => true,
|
||||
66918 => true,
|
||||
66919 => true,
|
||||
66920 => true,
|
||||
66921 => true,
|
||||
66922 => true,
|
||||
66923 => true,
|
||||
66924 => true,
|
||||
66925 => true,
|
||||
66926 => true,
|
||||
67383 => true,
|
||||
67384 => true,
|
||||
67385 => true,
|
||||
67386 => true,
|
||||
67387 => true,
|
||||
67388 => true,
|
||||
67389 => true,
|
||||
67390 => true,
|
||||
67391 => true,
|
||||
67414 => true,
|
||||
67415 => true,
|
||||
67416 => true,
|
||||
67417 => true,
|
||||
67418 => true,
|
||||
67419 => true,
|
||||
67420 => true,
|
||||
67421 => true,
|
||||
67422 => true,
|
||||
67423 => true,
|
||||
67590 => true,
|
||||
67591 => true,
|
||||
67593 => true,
|
||||
67638 => true,
|
||||
67641 => true,
|
||||
67642 => true,
|
||||
67643 => true,
|
||||
67645 => true,
|
||||
67646 => true,
|
||||
67670 => true,
|
||||
67743 => true,
|
||||
67744 => true,
|
||||
67745 => true,
|
||||
67746 => true,
|
||||
67747 => true,
|
||||
67748 => true,
|
||||
67749 => true,
|
||||
67750 => true,
|
||||
67827 => true,
|
||||
67830 => true,
|
||||
67831 => true,
|
||||
67832 => true,
|
||||
67833 => true,
|
||||
67834 => true,
|
||||
67868 => true,
|
||||
67869 => true,
|
||||
67870 => true,
|
||||
67898 => true,
|
||||
67899 => true,
|
||||
67900 => true,
|
||||
67901 => true,
|
||||
67902 => true,
|
||||
68024 => true,
|
||||
68025 => true,
|
||||
68026 => true,
|
||||
68027 => true,
|
||||
68048 => true,
|
||||
68049 => true,
|
||||
68100 => true,
|
||||
68103 => true,
|
||||
68104 => true,
|
||||
68105 => true,
|
||||
68106 => true,
|
||||
68107 => true,
|
||||
68116 => true,
|
||||
68120 => true,
|
||||
68150 => true,
|
||||
68151 => true,
|
||||
68155 => true,
|
||||
68156 => true,
|
||||
68157 => true,
|
||||
68158 => true,
|
||||
68169 => true,
|
||||
68170 => true,
|
||||
68171 => true,
|
||||
68172 => true,
|
||||
68173 => true,
|
||||
68174 => true,
|
||||
68175 => true,
|
||||
68185 => true,
|
||||
68186 => true,
|
||||
68187 => true,
|
||||
68188 => true,
|
||||
68189 => true,
|
||||
68190 => true,
|
||||
68191 => true,
|
||||
68327 => true,
|
||||
68328 => true,
|
||||
68329 => true,
|
||||
68330 => true,
|
||||
68343 => true,
|
||||
68344 => true,
|
||||
68345 => true,
|
||||
68346 => true,
|
||||
68347 => true,
|
||||
68348 => true,
|
||||
68349 => true,
|
||||
68350 => true,
|
||||
68351 => true,
|
||||
68406 => true,
|
||||
68407 => true,
|
||||
68408 => true,
|
||||
68438 => true,
|
||||
68439 => true,
|
||||
68467 => true,
|
||||
68468 => true,
|
||||
68469 => true,
|
||||
68470 => true,
|
||||
68471 => true,
|
||||
68498 => true,
|
||||
68499 => true,
|
||||
68500 => true,
|
||||
68501 => true,
|
||||
68502 => true,
|
||||
68503 => true,
|
||||
68504 => true,
|
||||
68509 => true,
|
||||
68510 => true,
|
||||
68511 => true,
|
||||
68512 => true,
|
||||
68513 => true,
|
||||
68514 => true,
|
||||
68515 => true,
|
||||
68516 => true,
|
||||
68517 => true,
|
||||
68518 => true,
|
||||
68519 => true,
|
||||
68520 => true,
|
||||
68787 => true,
|
||||
68788 => true,
|
||||
68789 => true,
|
||||
68790 => true,
|
||||
68791 => true,
|
||||
68792 => true,
|
||||
68793 => true,
|
||||
68794 => true,
|
||||
68795 => true,
|
||||
68796 => true,
|
||||
68797 => true,
|
||||
68798 => true,
|
||||
68799 => true,
|
||||
68851 => true,
|
||||
68852 => true,
|
||||
68853 => true,
|
||||
68854 => true,
|
||||
68855 => true,
|
||||
68856 => true,
|
||||
68857 => true,
|
||||
68904 => true,
|
||||
68905 => true,
|
||||
68906 => true,
|
||||
68907 => true,
|
||||
68908 => true,
|
||||
68909 => true,
|
||||
68910 => true,
|
||||
68911 => true,
|
||||
69247 => true,
|
||||
69290 => true,
|
||||
69294 => true,
|
||||
69295 => true,
|
||||
69416 => true,
|
||||
69417 => true,
|
||||
69418 => true,
|
||||
69419 => true,
|
||||
69420 => true,
|
||||
69421 => true,
|
||||
69422 => true,
|
||||
69423 => true,
|
||||
69580 => true,
|
||||
69581 => true,
|
||||
69582 => true,
|
||||
69583 => true,
|
||||
69584 => true,
|
||||
69585 => true,
|
||||
69586 => true,
|
||||
69587 => true,
|
||||
69588 => true,
|
||||
69589 => true,
|
||||
69590 => true,
|
||||
69591 => true,
|
||||
69592 => true,
|
||||
69593 => true,
|
||||
69594 => true,
|
||||
69595 => true,
|
||||
69596 => true,
|
||||
69597 => true,
|
||||
69598 => true,
|
||||
69599 => true,
|
||||
69623 => true,
|
||||
69624 => true,
|
||||
69625 => true,
|
||||
69626 => true,
|
||||
69627 => true,
|
||||
69628 => true,
|
||||
69629 => true,
|
||||
69630 => true,
|
||||
69631 => true,
|
||||
69710 => true,
|
||||
69711 => true,
|
||||
69712 => true,
|
||||
69713 => true,
|
||||
69744 => true,
|
||||
69745 => true,
|
||||
69746 => true,
|
||||
69747 => true,
|
||||
69748 => true,
|
||||
69749 => true,
|
||||
69750 => true,
|
||||
69751 => true,
|
||||
69752 => true,
|
||||
69753 => true,
|
||||
69754 => true,
|
||||
69755 => true,
|
||||
69756 => true,
|
||||
69757 => true,
|
||||
69758 => true,
|
||||
69821 => true,
|
||||
69826 => true,
|
||||
69827 => true,
|
||||
69828 => true,
|
||||
69829 => true,
|
||||
69830 => true,
|
||||
69831 => true,
|
||||
69832 => true,
|
||||
69833 => true,
|
||||
69834 => true,
|
||||
69835 => true,
|
||||
69836 => true,
|
||||
69837 => true,
|
||||
69838 => true,
|
||||
69839 => true,
|
||||
69865 => true,
|
||||
69866 => true,
|
||||
69867 => true,
|
||||
69868 => true,
|
||||
69869 => true,
|
||||
69870 => true,
|
||||
69871 => true,
|
||||
69882 => true,
|
||||
69883 => true,
|
||||
69884 => true,
|
||||
69885 => true,
|
||||
69886 => true,
|
||||
69887 => true,
|
||||
69941 => true,
|
||||
69960 => true,
|
||||
69961 => true,
|
||||
69962 => true,
|
||||
69963 => true,
|
||||
69964 => true,
|
||||
69965 => true,
|
||||
69966 => true,
|
||||
69967 => true,
|
||||
70007 => true,
|
||||
70008 => true,
|
||||
70009 => true,
|
||||
70010 => true,
|
||||
70011 => true,
|
||||
70012 => true,
|
||||
70013 => true,
|
||||
70014 => true,
|
||||
70015 => true,
|
||||
70112 => true,
|
||||
70133 => true,
|
||||
70134 => true,
|
||||
70135 => true,
|
||||
70136 => true,
|
||||
70137 => true,
|
||||
70138 => true,
|
||||
70139 => true,
|
||||
70140 => true,
|
||||
70141 => true,
|
||||
70142 => true,
|
||||
70143 => true,
|
||||
70162 => true,
|
||||
70279 => true,
|
||||
70281 => true,
|
||||
70286 => true,
|
||||
70302 => true,
|
||||
70314 => true,
|
||||
70315 => true,
|
||||
70316 => true,
|
||||
70317 => true,
|
||||
70318 => true,
|
||||
70319 => true,
|
||||
70379 => true,
|
||||
70380 => true,
|
||||
70381 => true,
|
||||
70382 => true,
|
||||
70383 => true,
|
||||
70394 => true,
|
||||
70395 => true,
|
||||
70396 => true,
|
||||
70397 => true,
|
||||
70398 => true,
|
||||
70399 => true,
|
||||
70404 => true,
|
||||
70413 => true,
|
||||
70414 => true,
|
||||
70417 => true,
|
||||
70418 => true,
|
||||
70441 => true,
|
||||
70449 => true,
|
||||
70452 => true,
|
||||
70458 => true,
|
||||
70469 => true,
|
||||
70470 => true,
|
||||
70473 => true,
|
||||
70474 => true,
|
||||
70478 => true,
|
||||
70479 => true,
|
||||
70481 => true,
|
||||
70482 => true,
|
||||
70483 => true,
|
||||
70484 => true,
|
||||
70485 => true,
|
||||
70486 => true,
|
||||
70488 => true,
|
||||
70489 => true,
|
||||
70490 => true,
|
||||
70491 => true,
|
||||
70492 => true,
|
||||
70500 => true,
|
||||
70501 => true,
|
||||
70509 => true,
|
||||
70510 => true,
|
||||
70511 => true,
|
||||
70748 => true,
|
||||
70754 => true,
|
||||
70755 => true,
|
||||
70756 => true,
|
||||
70757 => true,
|
||||
70758 => true,
|
||||
70759 => true,
|
||||
70760 => true,
|
||||
70761 => true,
|
||||
70762 => true,
|
||||
70763 => true,
|
||||
70764 => true,
|
||||
70765 => true,
|
||||
70766 => true,
|
||||
70767 => true,
|
||||
70768 => true,
|
||||
70769 => true,
|
||||
70770 => true,
|
||||
70771 => true,
|
||||
70772 => true,
|
||||
70773 => true,
|
||||
70774 => true,
|
||||
70775 => true,
|
||||
70776 => true,
|
||||
70777 => true,
|
||||
70778 => true,
|
||||
70779 => true,
|
||||
70780 => true,
|
||||
70781 => true,
|
||||
70782 => true,
|
||||
70783 => true,
|
||||
70856 => true,
|
||||
70857 => true,
|
||||
70858 => true,
|
||||
70859 => true,
|
||||
70860 => true,
|
||||
70861 => true,
|
||||
70862 => true,
|
||||
70863 => true,
|
||||
71094 => true,
|
||||
71095 => true,
|
||||
71237 => true,
|
||||
71238 => true,
|
||||
71239 => true,
|
||||
71240 => true,
|
||||
71241 => true,
|
||||
71242 => true,
|
||||
71243 => true,
|
||||
71244 => true,
|
||||
71245 => true,
|
||||
71246 => true,
|
||||
71247 => true,
|
||||
71258 => true,
|
||||
71259 => true,
|
||||
71260 => true,
|
||||
71261 => true,
|
||||
71262 => true,
|
||||
71263 => true,
|
||||
71277 => true,
|
||||
71278 => true,
|
||||
71279 => true,
|
||||
71280 => true,
|
||||
71281 => true,
|
||||
71282 => true,
|
||||
71283 => true,
|
||||
71284 => true,
|
||||
71285 => true,
|
||||
71286 => true,
|
||||
71287 => true,
|
||||
71288 => true,
|
||||
71289 => true,
|
||||
71290 => true,
|
||||
71291 => true,
|
||||
71292 => true,
|
||||
71293 => true,
|
||||
71294 => true,
|
||||
71295 => true,
|
||||
71353 => true,
|
||||
71354 => true,
|
||||
71355 => true,
|
||||
71356 => true,
|
||||
71357 => true,
|
||||
71358 => true,
|
||||
71359 => true,
|
||||
71451 => true,
|
||||
71452 => true,
|
||||
71468 => true,
|
||||
71469 => true,
|
||||
71470 => true,
|
||||
71471 => true,
|
||||
71923 => true,
|
||||
71924 => true,
|
||||
71925 => true,
|
||||
71926 => true,
|
||||
71927 => true,
|
||||
71928 => true,
|
||||
71929 => true,
|
||||
71930 => true,
|
||||
71931 => true,
|
||||
71932 => true,
|
||||
71933 => true,
|
||||
71934 => true,
|
||||
71943 => true,
|
||||
71944 => true,
|
||||
71946 => true,
|
||||
71947 => true,
|
||||
71956 => true,
|
||||
71959 => true,
|
||||
71990 => true,
|
||||
71993 => true,
|
||||
71994 => true,
|
||||
72007 => true,
|
||||
72008 => true,
|
||||
72009 => true,
|
||||
72010 => true,
|
||||
72011 => true,
|
||||
72012 => true,
|
||||
72013 => true,
|
||||
72014 => true,
|
||||
72015 => true,
|
||||
72104 => true,
|
||||
72105 => true,
|
||||
72152 => true,
|
||||
72153 => true,
|
||||
72165 => true,
|
||||
72166 => true,
|
||||
72167 => true,
|
||||
72168 => true,
|
||||
72169 => true,
|
||||
72170 => true,
|
||||
72171 => true,
|
||||
72172 => true,
|
||||
72173 => true,
|
||||
72174 => true,
|
||||
72175 => true,
|
||||
72176 => true,
|
||||
72177 => true,
|
||||
72178 => true,
|
||||
72179 => true,
|
||||
72180 => true,
|
||||
72181 => true,
|
||||
72182 => true,
|
||||
72183 => true,
|
||||
72184 => true,
|
||||
72185 => true,
|
||||
72186 => true,
|
||||
72187 => true,
|
||||
72188 => true,
|
||||
72189 => true,
|
||||
72190 => true,
|
||||
72191 => true,
|
||||
72264 => true,
|
||||
72265 => true,
|
||||
72266 => true,
|
||||
72267 => true,
|
||||
72268 => true,
|
||||
72269 => true,
|
||||
72270 => true,
|
||||
72271 => true,
|
||||
72355 => true,
|
||||
72356 => true,
|
||||
72357 => true,
|
||||
72358 => true,
|
||||
72359 => true,
|
||||
72360 => true,
|
||||
72361 => true,
|
||||
72362 => true,
|
||||
72363 => true,
|
||||
72364 => true,
|
||||
72365 => true,
|
||||
72366 => true,
|
||||
72367 => true,
|
||||
72368 => true,
|
||||
72369 => true,
|
||||
72370 => true,
|
||||
72371 => true,
|
||||
72372 => true,
|
||||
72373 => true,
|
||||
72374 => true,
|
||||
72375 => true,
|
||||
72376 => true,
|
||||
72377 => true,
|
||||
72378 => true,
|
||||
72379 => true,
|
||||
72380 => true,
|
||||
72381 => true,
|
||||
72382 => true,
|
||||
72383 => true,
|
||||
72713 => true,
|
||||
72759 => true,
|
||||
72774 => true,
|
||||
72775 => true,
|
||||
72776 => true,
|
||||
72777 => true,
|
||||
72778 => true,
|
||||
72779 => true,
|
||||
72780 => true,
|
||||
72781 => true,
|
||||
72782 => true,
|
||||
72783 => true,
|
||||
72813 => true,
|
||||
72814 => true,
|
||||
72815 => true,
|
||||
72848 => true,
|
||||
72849 => true,
|
||||
72872 => true,
|
||||
72967 => true,
|
||||
72970 => true,
|
||||
73015 => true,
|
||||
73016 => true,
|
||||
73017 => true,
|
||||
73019 => true,
|
||||
73022 => true,
|
||||
73032 => true,
|
||||
73033 => true,
|
||||
73034 => true,
|
||||
73035 => true,
|
||||
73036 => true,
|
||||
73037 => true,
|
||||
73038 => true,
|
||||
73039 => true,
|
||||
73050 => true,
|
||||
73051 => true,
|
||||
73052 => true,
|
||||
73053 => true,
|
||||
73054 => true,
|
||||
73055 => true,
|
||||
73062 => true,
|
||||
73065 => true,
|
||||
73103 => true,
|
||||
73106 => true,
|
||||
73113 => true,
|
||||
73114 => true,
|
||||
73115 => true,
|
||||
73116 => true,
|
||||
73117 => true,
|
||||
73118 => true,
|
||||
73119 => true,
|
||||
73649 => true,
|
||||
73650 => true,
|
||||
73651 => true,
|
||||
73652 => true,
|
||||
73653 => true,
|
||||
73654 => true,
|
||||
73655 => true,
|
||||
73656 => true,
|
||||
73657 => true,
|
||||
73658 => true,
|
||||
73659 => true,
|
||||
73660 => true,
|
||||
73661 => true,
|
||||
73662 => true,
|
||||
73663 => true,
|
||||
73714 => true,
|
||||
73715 => true,
|
||||
73716 => true,
|
||||
73717 => true,
|
||||
73718 => true,
|
||||
73719 => true,
|
||||
73720 => true,
|
||||
73721 => true,
|
||||
73722 => true,
|
||||
73723 => true,
|
||||
73724 => true,
|
||||
73725 => true,
|
||||
73726 => true,
|
||||
74863 => true,
|
||||
74869 => true,
|
||||
74870 => true,
|
||||
74871 => true,
|
||||
74872 => true,
|
||||
74873 => true,
|
||||
74874 => true,
|
||||
74875 => true,
|
||||
74876 => true,
|
||||
74877 => true,
|
||||
74878 => true,
|
||||
74879 => true,
|
||||
78895 => true,
|
||||
78896 => true,
|
||||
78897 => true,
|
||||
78898 => true,
|
||||
78899 => true,
|
||||
78900 => true,
|
||||
78901 => true,
|
||||
78902 => true,
|
||||
78903 => true,
|
||||
78904 => true,
|
||||
92729 => true,
|
||||
92730 => true,
|
||||
92731 => true,
|
||||
92732 => true,
|
||||
92733 => true,
|
||||
92734 => true,
|
||||
92735 => true,
|
||||
92767 => true,
|
||||
92778 => true,
|
||||
92779 => true,
|
||||
92780 => true,
|
||||
92781 => true,
|
||||
92910 => true,
|
||||
92911 => true,
|
||||
92918 => true,
|
||||
92919 => true,
|
||||
92920 => true,
|
||||
92921 => true,
|
||||
92922 => true,
|
||||
92923 => true,
|
||||
92924 => true,
|
||||
92925 => true,
|
||||
92926 => true,
|
||||
92927 => true,
|
||||
92998 => true,
|
||||
92999 => true,
|
||||
93000 => true,
|
||||
93001 => true,
|
||||
93002 => true,
|
||||
93003 => true,
|
||||
93004 => true,
|
||||
93005 => true,
|
||||
93006 => true,
|
||||
93007 => true,
|
||||
93018 => true,
|
||||
93026 => true,
|
||||
93048 => true,
|
||||
93049 => true,
|
||||
93050 => true,
|
||||
93051 => true,
|
||||
93052 => true,
|
||||
94027 => true,
|
||||
94028 => true,
|
||||
94029 => true,
|
||||
94030 => true,
|
||||
94088 => true,
|
||||
94089 => true,
|
||||
94090 => true,
|
||||
94091 => true,
|
||||
94092 => true,
|
||||
94093 => true,
|
||||
94094 => true,
|
||||
94181 => true,
|
||||
94182 => true,
|
||||
94183 => true,
|
||||
94184 => true,
|
||||
94185 => true,
|
||||
94186 => true,
|
||||
94187 => true,
|
||||
94188 => true,
|
||||
94189 => true,
|
||||
94190 => true,
|
||||
94191 => true,
|
||||
94194 => true,
|
||||
94195 => true,
|
||||
94196 => true,
|
||||
94197 => true,
|
||||
94198 => true,
|
||||
94199 => true,
|
||||
94200 => true,
|
||||
94201 => true,
|
||||
94202 => true,
|
||||
94203 => true,
|
||||
94204 => true,
|
||||
94205 => true,
|
||||
94206 => true,
|
||||
94207 => true,
|
||||
100344 => true,
|
||||
100345 => true,
|
||||
100346 => true,
|
||||
100347 => true,
|
||||
100348 => true,
|
||||
100349 => true,
|
||||
100350 => true,
|
||||
100351 => true,
|
||||
110931 => true,
|
||||
110932 => true,
|
||||
110933 => true,
|
||||
110934 => true,
|
||||
110935 => true,
|
||||
110936 => true,
|
||||
110937 => true,
|
||||
110938 => true,
|
||||
110939 => true,
|
||||
110940 => true,
|
||||
110941 => true,
|
||||
110942 => true,
|
||||
110943 => true,
|
||||
110944 => true,
|
||||
110945 => true,
|
||||
110946 => true,
|
||||
110947 => true,
|
||||
110952 => true,
|
||||
110953 => true,
|
||||
110954 => true,
|
||||
110955 => true,
|
||||
110956 => true,
|
||||
110957 => true,
|
||||
110958 => true,
|
||||
110959 => true,
|
||||
113771 => true,
|
||||
113772 => true,
|
||||
113773 => true,
|
||||
113774 => true,
|
||||
113775 => true,
|
||||
113789 => true,
|
||||
113790 => true,
|
||||
113791 => true,
|
||||
113801 => true,
|
||||
113802 => true,
|
||||
113803 => true,
|
||||
113804 => true,
|
||||
113805 => true,
|
||||
113806 => true,
|
||||
113807 => true,
|
||||
113818 => true,
|
||||
113819 => true,
|
||||
119030 => true,
|
||||
119031 => true,
|
||||
119032 => true,
|
||||
119033 => true,
|
||||
119034 => true,
|
||||
119035 => true,
|
||||
119036 => true,
|
||||
119037 => true,
|
||||
119038 => true,
|
||||
119039 => true,
|
||||
119079 => true,
|
||||
119080 => true,
|
||||
119155 => true,
|
||||
119156 => true,
|
||||
119157 => true,
|
||||
119158 => true,
|
||||
119159 => true,
|
||||
119160 => true,
|
||||
119161 => true,
|
||||
119162 => true,
|
||||
119273 => true,
|
||||
119274 => true,
|
||||
119275 => true,
|
||||
119276 => true,
|
||||
119277 => true,
|
||||
119278 => true,
|
||||
119279 => true,
|
||||
119280 => true,
|
||||
119281 => true,
|
||||
119282 => true,
|
||||
119283 => true,
|
||||
119284 => true,
|
||||
119285 => true,
|
||||
119286 => true,
|
||||
119287 => true,
|
||||
119288 => true,
|
||||
119289 => true,
|
||||
119290 => true,
|
||||
119291 => true,
|
||||
119292 => true,
|
||||
119293 => true,
|
||||
119294 => true,
|
||||
119295 => true,
|
||||
119540 => true,
|
||||
119541 => true,
|
||||
119542 => true,
|
||||
119543 => true,
|
||||
119544 => true,
|
||||
119545 => true,
|
||||
119546 => true,
|
||||
119547 => true,
|
||||
119548 => true,
|
||||
119549 => true,
|
||||
119550 => true,
|
||||
119551 => true,
|
||||
119639 => true,
|
||||
119640 => true,
|
||||
119641 => true,
|
||||
119642 => true,
|
||||
119643 => true,
|
||||
119644 => true,
|
||||
119645 => true,
|
||||
119646 => true,
|
||||
119647 => true,
|
||||
119893 => true,
|
||||
119965 => true,
|
||||
119968 => true,
|
||||
119969 => true,
|
||||
119971 => true,
|
||||
119972 => true,
|
||||
119975 => true,
|
||||
119976 => true,
|
||||
119981 => true,
|
||||
119994 => true,
|
||||
119996 => true,
|
||||
120004 => true,
|
||||
120070 => true,
|
||||
120075 => true,
|
||||
120076 => true,
|
||||
120085 => true,
|
||||
120093 => true,
|
||||
120122 => true,
|
||||
120127 => true,
|
||||
120133 => true,
|
||||
120135 => true,
|
||||
120136 => true,
|
||||
120137 => true,
|
||||
120145 => true,
|
||||
120486 => true,
|
||||
120487 => true,
|
||||
120780 => true,
|
||||
120781 => true,
|
||||
121484 => true,
|
||||
121485 => true,
|
||||
121486 => true,
|
||||
121487 => true,
|
||||
121488 => true,
|
||||
121489 => true,
|
||||
121490 => true,
|
||||
121491 => true,
|
||||
121492 => true,
|
||||
121493 => true,
|
||||
121494 => true,
|
||||
121495 => true,
|
||||
121496 => true,
|
||||
121497 => true,
|
||||
121498 => true,
|
||||
121504 => true,
|
||||
122887 => true,
|
||||
122905 => true,
|
||||
122906 => true,
|
||||
122914 => true,
|
||||
122917 => true,
|
||||
123181 => true,
|
||||
123182 => true,
|
||||
123183 => true,
|
||||
123198 => true,
|
||||
123199 => true,
|
||||
123210 => true,
|
||||
123211 => true,
|
||||
123212 => true,
|
||||
123213 => true,
|
||||
123642 => true,
|
||||
123643 => true,
|
||||
123644 => true,
|
||||
123645 => true,
|
||||
123646 => true,
|
||||
125125 => true,
|
||||
125126 => true,
|
||||
125260 => true,
|
||||
125261 => true,
|
||||
125262 => true,
|
||||
125263 => true,
|
||||
125274 => true,
|
||||
125275 => true,
|
||||
125276 => true,
|
||||
125277 => true,
|
||||
126468 => true,
|
||||
126496 => true,
|
||||
126499 => true,
|
||||
126501 => true,
|
||||
126502 => true,
|
||||
126504 => true,
|
||||
126515 => true,
|
||||
126520 => true,
|
||||
126522 => true,
|
||||
126524 => true,
|
||||
126525 => true,
|
||||
126526 => true,
|
||||
126527 => true,
|
||||
126528 => true,
|
||||
126529 => true,
|
||||
126531 => true,
|
||||
126532 => true,
|
||||
126533 => true,
|
||||
126534 => true,
|
||||
126536 => true,
|
||||
126538 => true,
|
||||
126540 => true,
|
||||
126544 => true,
|
||||
126547 => true,
|
||||
126549 => true,
|
||||
126550 => true,
|
||||
126552 => true,
|
||||
126554 => true,
|
||||
126556 => true,
|
||||
126558 => true,
|
||||
126560 => true,
|
||||
126563 => true,
|
||||
126565 => true,
|
||||
126566 => true,
|
||||
126571 => true,
|
||||
126579 => true,
|
||||
126584 => true,
|
||||
126589 => true,
|
||||
126591 => true,
|
||||
126602 => true,
|
||||
126620 => true,
|
||||
126621 => true,
|
||||
126622 => true,
|
||||
126623 => true,
|
||||
126624 => true,
|
||||
126628 => true,
|
||||
126634 => true,
|
||||
127020 => true,
|
||||
127021 => true,
|
||||
127022 => true,
|
||||
127023 => true,
|
||||
127124 => true,
|
||||
127125 => true,
|
||||
127126 => true,
|
||||
127127 => true,
|
||||
127128 => true,
|
||||
127129 => true,
|
||||
127130 => true,
|
||||
127131 => true,
|
||||
127132 => true,
|
||||
127133 => true,
|
||||
127134 => true,
|
||||
127135 => true,
|
||||
127151 => true,
|
||||
127152 => true,
|
||||
127168 => true,
|
||||
127184 => true,
|
||||
127222 => true,
|
||||
127223 => true,
|
||||
127224 => true,
|
||||
127225 => true,
|
||||
127226 => true,
|
||||
127227 => true,
|
||||
127228 => true,
|
||||
127229 => true,
|
||||
127230 => true,
|
||||
127231 => true,
|
||||
127232 => true,
|
||||
127491 => true,
|
||||
127492 => true,
|
||||
127493 => true,
|
||||
127494 => true,
|
||||
127495 => true,
|
||||
127496 => true,
|
||||
127497 => true,
|
||||
127498 => true,
|
||||
127499 => true,
|
||||
127500 => true,
|
||||
127501 => true,
|
||||
127502 => true,
|
||||
127503 => true,
|
||||
127548 => true,
|
||||
127549 => true,
|
||||
127550 => true,
|
||||
127551 => true,
|
||||
127561 => true,
|
||||
127562 => true,
|
||||
127563 => true,
|
||||
127564 => true,
|
||||
127565 => true,
|
||||
127566 => true,
|
||||
127567 => true,
|
||||
127570 => true,
|
||||
127571 => true,
|
||||
127572 => true,
|
||||
127573 => true,
|
||||
127574 => true,
|
||||
127575 => true,
|
||||
127576 => true,
|
||||
127577 => true,
|
||||
127578 => true,
|
||||
127579 => true,
|
||||
127580 => true,
|
||||
127581 => true,
|
||||
127582 => true,
|
||||
127583 => true,
|
||||
128728 => true,
|
||||
128729 => true,
|
||||
128730 => true,
|
||||
128731 => true,
|
||||
128732 => true,
|
||||
128733 => true,
|
||||
128734 => true,
|
||||
128735 => true,
|
||||
128749 => true,
|
||||
128750 => true,
|
||||
128751 => true,
|
||||
128765 => true,
|
||||
128766 => true,
|
||||
128767 => true,
|
||||
128884 => true,
|
||||
128885 => true,
|
||||
128886 => true,
|
||||
128887 => true,
|
||||
128888 => true,
|
||||
128889 => true,
|
||||
128890 => true,
|
||||
128891 => true,
|
||||
128892 => true,
|
||||
128893 => true,
|
||||
128894 => true,
|
||||
128895 => true,
|
||||
128985 => true,
|
||||
128986 => true,
|
||||
128987 => true,
|
||||
128988 => true,
|
||||
128989 => true,
|
||||
128990 => true,
|
||||
128991 => true,
|
||||
129004 => true,
|
||||
129005 => true,
|
||||
129006 => true,
|
||||
129007 => true,
|
||||
129008 => true,
|
||||
129009 => true,
|
||||
129010 => true,
|
||||
129011 => true,
|
||||
129012 => true,
|
||||
129013 => true,
|
||||
129014 => true,
|
||||
129015 => true,
|
||||
129016 => true,
|
||||
129017 => true,
|
||||
129018 => true,
|
||||
129019 => true,
|
||||
129020 => true,
|
||||
129021 => true,
|
||||
129022 => true,
|
||||
129023 => true,
|
||||
129036 => true,
|
||||
129037 => true,
|
||||
129038 => true,
|
||||
129039 => true,
|
||||
129096 => true,
|
||||
129097 => true,
|
||||
129098 => true,
|
||||
129099 => true,
|
||||
129100 => true,
|
||||
129101 => true,
|
||||
129102 => true,
|
||||
129103 => true,
|
||||
129114 => true,
|
||||
129115 => true,
|
||||
129116 => true,
|
||||
129117 => true,
|
||||
129118 => true,
|
||||
129119 => true,
|
||||
129160 => true,
|
||||
129161 => true,
|
||||
129162 => true,
|
||||
129163 => true,
|
||||
129164 => true,
|
||||
129165 => true,
|
||||
129166 => true,
|
||||
129167 => true,
|
||||
129198 => true,
|
||||
129199 => true,
|
||||
129401 => true,
|
||||
129484 => true,
|
||||
129620 => true,
|
||||
129621 => true,
|
||||
129622 => true,
|
||||
129623 => true,
|
||||
129624 => true,
|
||||
129625 => true,
|
||||
129626 => true,
|
||||
129627 => true,
|
||||
129628 => true,
|
||||
129629 => true,
|
||||
129630 => true,
|
||||
129631 => true,
|
||||
129646 => true,
|
||||
129647 => true,
|
||||
129653 => true,
|
||||
129654 => true,
|
||||
129655 => true,
|
||||
129659 => true,
|
||||
129660 => true,
|
||||
129661 => true,
|
||||
129662 => true,
|
||||
129663 => true,
|
||||
129671 => true,
|
||||
129672 => true,
|
||||
129673 => true,
|
||||
129674 => true,
|
||||
129675 => true,
|
||||
129676 => true,
|
||||
129677 => true,
|
||||
129678 => true,
|
||||
129679 => true,
|
||||
129705 => true,
|
||||
129706 => true,
|
||||
129707 => true,
|
||||
129708 => true,
|
||||
129709 => true,
|
||||
129710 => true,
|
||||
129711 => true,
|
||||
129719 => true,
|
||||
129720 => true,
|
||||
129721 => true,
|
||||
129722 => true,
|
||||
129723 => true,
|
||||
129724 => true,
|
||||
129725 => true,
|
||||
129726 => true,
|
||||
129727 => true,
|
||||
129731 => true,
|
||||
129732 => true,
|
||||
129733 => true,
|
||||
129734 => true,
|
||||
129735 => true,
|
||||
129736 => true,
|
||||
129737 => true,
|
||||
129738 => true,
|
||||
129739 => true,
|
||||
129740 => true,
|
||||
129741 => true,
|
||||
129742 => true,
|
||||
129743 => true,
|
||||
129939 => true,
|
||||
131070 => true,
|
||||
131071 => true,
|
||||
177973 => true,
|
||||
177974 => true,
|
||||
177975 => true,
|
||||
177976 => true,
|
||||
177977 => true,
|
||||
177978 => true,
|
||||
177979 => true,
|
||||
177980 => true,
|
||||
177981 => true,
|
||||
177982 => true,
|
||||
177983 => true,
|
||||
178206 => true,
|
||||
178207 => true,
|
||||
183970 => true,
|
||||
183971 => true,
|
||||
183972 => true,
|
||||
183973 => true,
|
||||
183974 => true,
|
||||
183975 => true,
|
||||
183976 => true,
|
||||
183977 => true,
|
||||
183978 => true,
|
||||
183979 => true,
|
||||
183980 => true,
|
||||
183981 => true,
|
||||
183982 => true,
|
||||
183983 => true,
|
||||
194664 => true,
|
||||
194676 => true,
|
||||
194847 => true,
|
||||
194911 => true,
|
||||
195007 => true,
|
||||
196606 => true,
|
||||
196607 => true,
|
||||
262142 => true,
|
||||
262143 => true,
|
||||
327678 => true,
|
||||
327679 => true,
|
||||
393214 => true,
|
||||
393215 => true,
|
||||
458750 => true,
|
||||
458751 => true,
|
||||
524286 => true,
|
||||
524287 => true,
|
||||
589822 => true,
|
||||
589823 => true,
|
||||
655358 => true,
|
||||
655359 => true,
|
||||
720894 => true,
|
||||
720895 => true,
|
||||
786430 => true,
|
||||
786431 => true,
|
||||
851966 => true,
|
||||
851967 => true,
|
||||
917502 => true,
|
||||
917503 => true,
|
||||
917504 => true,
|
||||
917505 => true,
|
||||
917506 => true,
|
||||
917507 => true,
|
||||
917508 => true,
|
||||
917509 => true,
|
||||
917510 => true,
|
||||
917511 => true,
|
||||
917512 => true,
|
||||
917513 => true,
|
||||
917514 => true,
|
||||
917515 => true,
|
||||
917516 => true,
|
||||
917517 => true,
|
||||
917518 => true,
|
||||
917519 => true,
|
||||
917520 => true,
|
||||
917521 => true,
|
||||
917522 => true,
|
||||
917523 => true,
|
||||
917524 => true,
|
||||
917525 => true,
|
||||
917526 => true,
|
||||
917527 => true,
|
||||
917528 => true,
|
||||
917529 => true,
|
||||
917530 => true,
|
||||
917531 => true,
|
||||
917532 => true,
|
||||
917533 => true,
|
||||
917534 => true,
|
||||
917535 => true,
|
||||
983038 => true,
|
||||
983039 => true,
|
||||
1048574 => true,
|
||||
1048575 => true,
|
||||
1114110 => true,
|
||||
1114111 => true,
|
||||
);
|
||||
+308
@@ -0,0 +1,308 @@
|
||||
<?php
|
||||
|
||||
return array (
|
||||
160 => ' ',
|
||||
168 => ' ̈',
|
||||
175 => ' ̄',
|
||||
180 => ' ́',
|
||||
184 => ' ̧',
|
||||
728 => ' ̆',
|
||||
729 => ' ̇',
|
||||
730 => ' ̊',
|
||||
731 => ' ̨',
|
||||
732 => ' ̃',
|
||||
733 => ' ̋',
|
||||
890 => ' ι',
|
||||
894 => ';',
|
||||
900 => ' ́',
|
||||
901 => ' ̈́',
|
||||
8125 => ' ̓',
|
||||
8127 => ' ̓',
|
||||
8128 => ' ͂',
|
||||
8129 => ' ̈͂',
|
||||
8141 => ' ̓̀',
|
||||
8142 => ' ̓́',
|
||||
8143 => ' ̓͂',
|
||||
8157 => ' ̔̀',
|
||||
8158 => ' ̔́',
|
||||
8159 => ' ̔͂',
|
||||
8173 => ' ̈̀',
|
||||
8174 => ' ̈́',
|
||||
8175 => '`',
|
||||
8189 => ' ́',
|
||||
8190 => ' ̔',
|
||||
8192 => ' ',
|
||||
8193 => ' ',
|
||||
8194 => ' ',
|
||||
8195 => ' ',
|
||||
8196 => ' ',
|
||||
8197 => ' ',
|
||||
8198 => ' ',
|
||||
8199 => ' ',
|
||||
8200 => ' ',
|
||||
8201 => ' ',
|
||||
8202 => ' ',
|
||||
8215 => ' ̳',
|
||||
8239 => ' ',
|
||||
8252 => '!!',
|
||||
8254 => ' ̅',
|
||||
8263 => '??',
|
||||
8264 => '?!',
|
||||
8265 => '!?',
|
||||
8287 => ' ',
|
||||
8314 => '+',
|
||||
8316 => '=',
|
||||
8317 => '(',
|
||||
8318 => ')',
|
||||
8330 => '+',
|
||||
8332 => '=',
|
||||
8333 => '(',
|
||||
8334 => ')',
|
||||
8448 => 'a/c',
|
||||
8449 => 'a/s',
|
||||
8453 => 'c/o',
|
||||
8454 => 'c/u',
|
||||
9332 => '(1)',
|
||||
9333 => '(2)',
|
||||
9334 => '(3)',
|
||||
9335 => '(4)',
|
||||
9336 => '(5)',
|
||||
9337 => '(6)',
|
||||
9338 => '(7)',
|
||||
9339 => '(8)',
|
||||
9340 => '(9)',
|
||||
9341 => '(10)',
|
||||
9342 => '(11)',
|
||||
9343 => '(12)',
|
||||
9344 => '(13)',
|
||||
9345 => '(14)',
|
||||
9346 => '(15)',
|
||||
9347 => '(16)',
|
||||
9348 => '(17)',
|
||||
9349 => '(18)',
|
||||
9350 => '(19)',
|
||||
9351 => '(20)',
|
||||
9372 => '(a)',
|
||||
9373 => '(b)',
|
||||
9374 => '(c)',
|
||||
9375 => '(d)',
|
||||
9376 => '(e)',
|
||||
9377 => '(f)',
|
||||
9378 => '(g)',
|
||||
9379 => '(h)',
|
||||
9380 => '(i)',
|
||||
9381 => '(j)',
|
||||
9382 => '(k)',
|
||||
9383 => '(l)',
|
||||
9384 => '(m)',
|
||||
9385 => '(n)',
|
||||
9386 => '(o)',
|
||||
9387 => '(p)',
|
||||
9388 => '(q)',
|
||||
9389 => '(r)',
|
||||
9390 => '(s)',
|
||||
9391 => '(t)',
|
||||
9392 => '(u)',
|
||||
9393 => '(v)',
|
||||
9394 => '(w)',
|
||||
9395 => '(x)',
|
||||
9396 => '(y)',
|
||||
9397 => '(z)',
|
||||
10868 => '::=',
|
||||
10869 => '==',
|
||||
10870 => '===',
|
||||
12288 => ' ',
|
||||
12443 => ' ゙',
|
||||
12444 => ' ゚',
|
||||
12800 => '(ᄀ)',
|
||||
12801 => '(ᄂ)',
|
||||
12802 => '(ᄃ)',
|
||||
12803 => '(ᄅ)',
|
||||
12804 => '(ᄆ)',
|
||||
12805 => '(ᄇ)',
|
||||
12806 => '(ᄉ)',
|
||||
12807 => '(ᄋ)',
|
||||
12808 => '(ᄌ)',
|
||||
12809 => '(ᄎ)',
|
||||
12810 => '(ᄏ)',
|
||||
12811 => '(ᄐ)',
|
||||
12812 => '(ᄑ)',
|
||||
12813 => '(ᄒ)',
|
||||
12814 => '(가)',
|
||||
12815 => '(나)',
|
||||
12816 => '(다)',
|
||||
12817 => '(라)',
|
||||
12818 => '(마)',
|
||||
12819 => '(바)',
|
||||
12820 => '(사)',
|
||||
12821 => '(아)',
|
||||
12822 => '(자)',
|
||||
12823 => '(차)',
|
||||
12824 => '(카)',
|
||||
12825 => '(타)',
|
||||
12826 => '(파)',
|
||||
12827 => '(하)',
|
||||
12828 => '(주)',
|
||||
12829 => '(오전)',
|
||||
12830 => '(오후)',
|
||||
12832 => '(一)',
|
||||
12833 => '(二)',
|
||||
12834 => '(三)',
|
||||
12835 => '(四)',
|
||||
12836 => '(五)',
|
||||
12837 => '(六)',
|
||||
12838 => '(七)',
|
||||
12839 => '(八)',
|
||||
12840 => '(九)',
|
||||
12841 => '(十)',
|
||||
12842 => '(月)',
|
||||
12843 => '(火)',
|
||||
12844 => '(水)',
|
||||
12845 => '(木)',
|
||||
12846 => '(金)',
|
||||
12847 => '(土)',
|
||||
12848 => '(日)',
|
||||
12849 => '(株)',
|
||||
12850 => '(有)',
|
||||
12851 => '(社)',
|
||||
12852 => '(名)',
|
||||
12853 => '(特)',
|
||||
12854 => '(財)',
|
||||
12855 => '(祝)',
|
||||
12856 => '(労)',
|
||||
12857 => '(代)',
|
||||
12858 => '(呼)',
|
||||
12859 => '(学)',
|
||||
12860 => '(監)',
|
||||
12861 => '(企)',
|
||||
12862 => '(資)',
|
||||
12863 => '(協)',
|
||||
12864 => '(祭)',
|
||||
12865 => '(休)',
|
||||
12866 => '(自)',
|
||||
12867 => '(至)',
|
||||
64297 => '+',
|
||||
64606 => ' ٌّ',
|
||||
64607 => ' ٍّ',
|
||||
64608 => ' َّ',
|
||||
64609 => ' ُّ',
|
||||
64610 => ' ِّ',
|
||||
64611 => ' ّٰ',
|
||||
65018 => 'صلى الله عليه وسلم',
|
||||
65019 => 'جل جلاله',
|
||||
65040 => ',',
|
||||
65043 => ':',
|
||||
65044 => ';',
|
||||
65045 => '!',
|
||||
65046 => '?',
|
||||
65075 => '_',
|
||||
65076 => '_',
|
||||
65077 => '(',
|
||||
65078 => ')',
|
||||
65079 => '{',
|
||||
65080 => '}',
|
||||
65095 => '[',
|
||||
65096 => ']',
|
||||
65097 => ' ̅',
|
||||
65098 => ' ̅',
|
||||
65099 => ' ̅',
|
||||
65100 => ' ̅',
|
||||
65101 => '_',
|
||||
65102 => '_',
|
||||
65103 => '_',
|
||||
65104 => ',',
|
||||
65108 => ';',
|
||||
65109 => ':',
|
||||
65110 => '?',
|
||||
65111 => '!',
|
||||
65113 => '(',
|
||||
65114 => ')',
|
||||
65115 => '{',
|
||||
65116 => '}',
|
||||
65119 => '#',
|
||||
65120 => '&',
|
||||
65121 => '*',
|
||||
65122 => '+',
|
||||
65124 => '<',
|
||||
65125 => '>',
|
||||
65126 => '=',
|
||||
65128 => '\\',
|
||||
65129 => '$',
|
||||
65130 => '%',
|
||||
65131 => '@',
|
||||
65136 => ' ً',
|
||||
65138 => ' ٌ',
|
||||
65140 => ' ٍ',
|
||||
65142 => ' َ',
|
||||
65144 => ' ُ',
|
||||
65146 => ' ِ',
|
||||
65148 => ' ّ',
|
||||
65150 => ' ْ',
|
||||
65281 => '!',
|
||||
65282 => '"',
|
||||
65283 => '#',
|
||||
65284 => '$',
|
||||
65285 => '%',
|
||||
65286 => '&',
|
||||
65287 => '\'',
|
||||
65288 => '(',
|
||||
65289 => ')',
|
||||
65290 => '*',
|
||||
65291 => '+',
|
||||
65292 => ',',
|
||||
65295 => '/',
|
||||
65306 => ':',
|
||||
65307 => ';',
|
||||
65308 => '<',
|
||||
65309 => '=',
|
||||
65310 => '>',
|
||||
65311 => '?',
|
||||
65312 => '@',
|
||||
65339 => '[',
|
||||
65340 => '\\',
|
||||
65341 => ']',
|
||||
65342 => '^',
|
||||
65343 => '_',
|
||||
65344 => '`',
|
||||
65371 => '{',
|
||||
65372 => '|',
|
||||
65373 => '}',
|
||||
65374 => '~',
|
||||
65507 => ' ̄',
|
||||
127233 => '0,',
|
||||
127234 => '1,',
|
||||
127235 => '2,',
|
||||
127236 => '3,',
|
||||
127237 => '4,',
|
||||
127238 => '5,',
|
||||
127239 => '6,',
|
||||
127240 => '7,',
|
||||
127241 => '8,',
|
||||
127242 => '9,',
|
||||
127248 => '(a)',
|
||||
127249 => '(b)',
|
||||
127250 => '(c)',
|
||||
127251 => '(d)',
|
||||
127252 => '(e)',
|
||||
127253 => '(f)',
|
||||
127254 => '(g)',
|
||||
127255 => '(h)',
|
||||
127256 => '(i)',
|
||||
127257 => '(j)',
|
||||
127258 => '(k)',
|
||||
127259 => '(l)',
|
||||
127260 => '(m)',
|
||||
127261 => '(n)',
|
||||
127262 => '(o)',
|
||||
127263 => '(p)',
|
||||
127264 => '(q)',
|
||||
127265 => '(r)',
|
||||
127266 => '(s)',
|
||||
127267 => '(t)',
|
||||
127268 => '(u)',
|
||||
127269 => '(v)',
|
||||
127270 => '(w)',
|
||||
127271 => '(x)',
|
||||
127272 => '(y)',
|
||||
127273 => '(z)',
|
||||
);
|
||||
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
return array (
|
||||
0 => true,
|
||||
1 => true,
|
||||
2 => true,
|
||||
3 => true,
|
||||
4 => true,
|
||||
5 => true,
|
||||
6 => true,
|
||||
7 => true,
|
||||
8 => true,
|
||||
9 => true,
|
||||
10 => true,
|
||||
11 => true,
|
||||
12 => true,
|
||||
13 => true,
|
||||
14 => true,
|
||||
15 => true,
|
||||
16 => true,
|
||||
17 => true,
|
||||
18 => true,
|
||||
19 => true,
|
||||
20 => true,
|
||||
21 => true,
|
||||
22 => true,
|
||||
23 => true,
|
||||
24 => true,
|
||||
25 => true,
|
||||
26 => true,
|
||||
27 => true,
|
||||
28 => true,
|
||||
29 => true,
|
||||
30 => true,
|
||||
31 => true,
|
||||
32 => true,
|
||||
33 => true,
|
||||
34 => true,
|
||||
35 => true,
|
||||
36 => true,
|
||||
37 => true,
|
||||
38 => true,
|
||||
39 => true,
|
||||
40 => true,
|
||||
41 => true,
|
||||
42 => true,
|
||||
43 => true,
|
||||
44 => true,
|
||||
47 => true,
|
||||
58 => true,
|
||||
59 => true,
|
||||
60 => true,
|
||||
61 => true,
|
||||
62 => true,
|
||||
63 => true,
|
||||
64 => true,
|
||||
91 => true,
|
||||
92 => true,
|
||||
93 => true,
|
||||
94 => true,
|
||||
95 => true,
|
||||
96 => true,
|
||||
123 => true,
|
||||
124 => true,
|
||||
125 => true,
|
||||
126 => true,
|
||||
127 => true,
|
||||
8800 => true,
|
||||
8814 => true,
|
||||
8815 => true,
|
||||
);
|
||||
@@ -0,0 +1,273 @@
|
||||
<?php
|
||||
|
||||
return array (
|
||||
173 => true,
|
||||
847 => true,
|
||||
6155 => true,
|
||||
6156 => true,
|
||||
6157 => true,
|
||||
8203 => true,
|
||||
8288 => true,
|
||||
8292 => true,
|
||||
65024 => true,
|
||||
65025 => true,
|
||||
65026 => true,
|
||||
65027 => true,
|
||||
65028 => true,
|
||||
65029 => true,
|
||||
65030 => true,
|
||||
65031 => true,
|
||||
65032 => true,
|
||||
65033 => true,
|
||||
65034 => true,
|
||||
65035 => true,
|
||||
65036 => true,
|
||||
65037 => true,
|
||||
65038 => true,
|
||||
65039 => true,
|
||||
65279 => true,
|
||||
113824 => true,
|
||||
113825 => true,
|
||||
113826 => true,
|
||||
113827 => true,
|
||||
917760 => true,
|
||||
917761 => true,
|
||||
917762 => true,
|
||||
917763 => true,
|
||||
917764 => true,
|
||||
917765 => true,
|
||||
917766 => true,
|
||||
917767 => true,
|
||||
917768 => true,
|
||||
917769 => true,
|
||||
917770 => true,
|
||||
917771 => true,
|
||||
917772 => true,
|
||||
917773 => true,
|
||||
917774 => true,
|
||||
917775 => true,
|
||||
917776 => true,
|
||||
917777 => true,
|
||||
917778 => true,
|
||||
917779 => true,
|
||||
917780 => true,
|
||||
917781 => true,
|
||||
917782 => true,
|
||||
917783 => true,
|
||||
917784 => true,
|
||||
917785 => true,
|
||||
917786 => true,
|
||||
917787 => true,
|
||||
917788 => true,
|
||||
917789 => true,
|
||||
917790 => true,
|
||||
917791 => true,
|
||||
917792 => true,
|
||||
917793 => true,
|
||||
917794 => true,
|
||||
917795 => true,
|
||||
917796 => true,
|
||||
917797 => true,
|
||||
917798 => true,
|
||||
917799 => true,
|
||||
917800 => true,
|
||||
917801 => true,
|
||||
917802 => true,
|
||||
917803 => true,
|
||||
917804 => true,
|
||||
917805 => true,
|
||||
917806 => true,
|
||||
917807 => true,
|
||||
917808 => true,
|
||||
917809 => true,
|
||||
917810 => true,
|
||||
917811 => true,
|
||||
917812 => true,
|
||||
917813 => true,
|
||||
917814 => true,
|
||||
917815 => true,
|
||||
917816 => true,
|
||||
917817 => true,
|
||||
917818 => true,
|
||||
917819 => true,
|
||||
917820 => true,
|
||||
917821 => true,
|
||||
917822 => true,
|
||||
917823 => true,
|
||||
917824 => true,
|
||||
917825 => true,
|
||||
917826 => true,
|
||||
917827 => true,
|
||||
917828 => true,
|
||||
917829 => true,
|
||||
917830 => true,
|
||||
917831 => true,
|
||||
917832 => true,
|
||||
917833 => true,
|
||||
917834 => true,
|
||||
917835 => true,
|
||||
917836 => true,
|
||||
917837 => true,
|
||||
917838 => true,
|
||||
917839 => true,
|
||||
917840 => true,
|
||||
917841 => true,
|
||||
917842 => true,
|
||||
917843 => true,
|
||||
917844 => true,
|
||||
917845 => true,
|
||||
917846 => true,
|
||||
917847 => true,
|
||||
917848 => true,
|
||||
917849 => true,
|
||||
917850 => true,
|
||||
917851 => true,
|
||||
917852 => true,
|
||||
917853 => true,
|
||||
917854 => true,
|
||||
917855 => true,
|
||||
917856 => true,
|
||||
917857 => true,
|
||||
917858 => true,
|
||||
917859 => true,
|
||||
917860 => true,
|
||||
917861 => true,
|
||||
917862 => true,
|
||||
917863 => true,
|
||||
917864 => true,
|
||||
917865 => true,
|
||||
917866 => true,
|
||||
917867 => true,
|
||||
917868 => true,
|
||||
917869 => true,
|
||||
917870 => true,
|
||||
917871 => true,
|
||||
917872 => true,
|
||||
917873 => true,
|
||||
917874 => true,
|
||||
917875 => true,
|
||||
917876 => true,
|
||||
917877 => true,
|
||||
917878 => true,
|
||||
917879 => true,
|
||||
917880 => true,
|
||||
917881 => true,
|
||||
917882 => true,
|
||||
917883 => true,
|
||||
917884 => true,
|
||||
917885 => true,
|
||||
917886 => true,
|
||||
917887 => true,
|
||||
917888 => true,
|
||||
917889 => true,
|
||||
917890 => true,
|
||||
917891 => true,
|
||||
917892 => true,
|
||||
917893 => true,
|
||||
917894 => true,
|
||||
917895 => true,
|
||||
917896 => true,
|
||||
917897 => true,
|
||||
917898 => true,
|
||||
917899 => true,
|
||||
917900 => true,
|
||||
917901 => true,
|
||||
917902 => true,
|
||||
917903 => true,
|
||||
917904 => true,
|
||||
917905 => true,
|
||||
917906 => true,
|
||||
917907 => true,
|
||||
917908 => true,
|
||||
917909 => true,
|
||||
917910 => true,
|
||||
917911 => true,
|
||||
917912 => true,
|
||||
917913 => true,
|
||||
917914 => true,
|
||||
917915 => true,
|
||||
917916 => true,
|
||||
917917 => true,
|
||||
917918 => true,
|
||||
917919 => true,
|
||||
917920 => true,
|
||||
917921 => true,
|
||||
917922 => true,
|
||||
917923 => true,
|
||||
917924 => true,
|
||||
917925 => true,
|
||||
917926 => true,
|
||||
917927 => true,
|
||||
917928 => true,
|
||||
917929 => true,
|
||||
917930 => true,
|
||||
917931 => true,
|
||||
917932 => true,
|
||||
917933 => true,
|
||||
917934 => true,
|
||||
917935 => true,
|
||||
917936 => true,
|
||||
917937 => true,
|
||||
917938 => true,
|
||||
917939 => true,
|
||||
917940 => true,
|
||||
917941 => true,
|
||||
917942 => true,
|
||||
917943 => true,
|
||||
917944 => true,
|
||||
917945 => true,
|
||||
917946 => true,
|
||||
917947 => true,
|
||||
917948 => true,
|
||||
917949 => true,
|
||||
917950 => true,
|
||||
917951 => true,
|
||||
917952 => true,
|
||||
917953 => true,
|
||||
917954 => true,
|
||||
917955 => true,
|
||||
917956 => true,
|
||||
917957 => true,
|
||||
917958 => true,
|
||||
917959 => true,
|
||||
917960 => true,
|
||||
917961 => true,
|
||||
917962 => true,
|
||||
917963 => true,
|
||||
917964 => true,
|
||||
917965 => true,
|
||||
917966 => true,
|
||||
917967 => true,
|
||||
917968 => true,
|
||||
917969 => true,
|
||||
917970 => true,
|
||||
917971 => true,
|
||||
917972 => true,
|
||||
917973 => true,
|
||||
917974 => true,
|
||||
917975 => true,
|
||||
917976 => true,
|
||||
917977 => true,
|
||||
917978 => true,
|
||||
917979 => true,
|
||||
917980 => true,
|
||||
917981 => true,
|
||||
917982 => true,
|
||||
917983 => true,
|
||||
917984 => true,
|
||||
917985 => true,
|
||||
917986 => true,
|
||||
917987 => true,
|
||||
917988 => true,
|
||||
917989 => true,
|
||||
917990 => true,
|
||||
917991 => true,
|
||||
917992 => true,
|
||||
917993 => true,
|
||||
917994 => true,
|
||||
917995 => true,
|
||||
917996 => true,
|
||||
917997 => true,
|
||||
917998 => true,
|
||||
917999 => true,
|
||||
);
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
return array (
|
||||
2381 => 9,
|
||||
2509 => 9,
|
||||
2637 => 9,
|
||||
2765 => 9,
|
||||
2893 => 9,
|
||||
3021 => 9,
|
||||
3149 => 9,
|
||||
3277 => 9,
|
||||
3387 => 9,
|
||||
3388 => 9,
|
||||
3405 => 9,
|
||||
3530 => 9,
|
||||
3642 => 9,
|
||||
3770 => 9,
|
||||
3972 => 9,
|
||||
4153 => 9,
|
||||
4154 => 9,
|
||||
5908 => 9,
|
||||
5940 => 9,
|
||||
6098 => 9,
|
||||
6752 => 9,
|
||||
6980 => 9,
|
||||
7082 => 9,
|
||||
7083 => 9,
|
||||
7154 => 9,
|
||||
7155 => 9,
|
||||
11647 => 9,
|
||||
43014 => 9,
|
||||
43052 => 9,
|
||||
43204 => 9,
|
||||
43347 => 9,
|
||||
43456 => 9,
|
||||
43766 => 9,
|
||||
44013 => 9,
|
||||
68159 => 9,
|
||||
69702 => 9,
|
||||
69759 => 9,
|
||||
69817 => 9,
|
||||
69939 => 9,
|
||||
69940 => 9,
|
||||
70080 => 9,
|
||||
70197 => 9,
|
||||
70378 => 9,
|
||||
70477 => 9,
|
||||
70722 => 9,
|
||||
70850 => 9,
|
||||
71103 => 9,
|
||||
71231 => 9,
|
||||
71350 => 9,
|
||||
71467 => 9,
|
||||
71737 => 9,
|
||||
71997 => 9,
|
||||
71998 => 9,
|
||||
72160 => 9,
|
||||
72244 => 9,
|
||||
72263 => 9,
|
||||
72345 => 9,
|
||||
72767 => 9,
|
||||
73028 => 9,
|
||||
73029 => 9,
|
||||
73111 => 9,
|
||||
);
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Symfony\Polyfill\Intl\Idn as p;
|
||||
|
||||
if (extension_loaded('intl')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (\PHP_VERSION_ID >= 80000) {
|
||||
return require __DIR__.'/bootstrap80.php';
|
||||
}
|
||||
|
||||
if (!defined('U_IDNA_PROHIBITED_ERROR')) {
|
||||
define('U_IDNA_PROHIBITED_ERROR', 66560);
|
||||
}
|
||||
if (!defined('U_IDNA_ERROR_START')) {
|
||||
define('U_IDNA_ERROR_START', 66560);
|
||||
}
|
||||
if (!defined('U_IDNA_UNASSIGNED_ERROR')) {
|
||||
define('U_IDNA_UNASSIGNED_ERROR', 66561);
|
||||
}
|
||||
if (!defined('U_IDNA_CHECK_BIDI_ERROR')) {
|
||||
define('U_IDNA_CHECK_BIDI_ERROR', 66562);
|
||||
}
|
||||
if (!defined('U_IDNA_STD3_ASCII_RULES_ERROR')) {
|
||||
define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563);
|
||||
}
|
||||
if (!defined('U_IDNA_ACE_PREFIX_ERROR')) {
|
||||
define('U_IDNA_ACE_PREFIX_ERROR', 66564);
|
||||
}
|
||||
if (!defined('U_IDNA_VERIFICATION_ERROR')) {
|
||||
define('U_IDNA_VERIFICATION_ERROR', 66565);
|
||||
}
|
||||
if (!defined('U_IDNA_LABEL_TOO_LONG_ERROR')) {
|
||||
define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566);
|
||||
}
|
||||
if (!defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) {
|
||||
define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567);
|
||||
}
|
||||
if (!defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) {
|
||||
define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568);
|
||||
}
|
||||
if (!defined('U_IDNA_ERROR_LIMIT')) {
|
||||
define('U_IDNA_ERROR_LIMIT', 66569);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_PROHIBITED_ERROR')) {
|
||||
define('U_STRINGPREP_PROHIBITED_ERROR', 66560);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_UNASSIGNED_ERROR')) {
|
||||
define('U_STRINGPREP_UNASSIGNED_ERROR', 66561);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_CHECK_BIDI_ERROR')) {
|
||||
define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562);
|
||||
}
|
||||
if (!defined('IDNA_DEFAULT')) {
|
||||
define('IDNA_DEFAULT', 0);
|
||||
}
|
||||
if (!defined('IDNA_ALLOW_UNASSIGNED')) {
|
||||
define('IDNA_ALLOW_UNASSIGNED', 1);
|
||||
}
|
||||
if (!defined('IDNA_USE_STD3_RULES')) {
|
||||
define('IDNA_USE_STD3_RULES', 2);
|
||||
}
|
||||
if (!defined('IDNA_CHECK_BIDI')) {
|
||||
define('IDNA_CHECK_BIDI', 4);
|
||||
}
|
||||
if (!defined('IDNA_CHECK_CONTEXTJ')) {
|
||||
define('IDNA_CHECK_CONTEXTJ', 8);
|
||||
}
|
||||
if (!defined('IDNA_NONTRANSITIONAL_TO_ASCII')) {
|
||||
define('IDNA_NONTRANSITIONAL_TO_ASCII', 16);
|
||||
}
|
||||
if (!defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) {
|
||||
define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32);
|
||||
}
|
||||
if (!defined('INTL_IDNA_VARIANT_2003')) {
|
||||
define('INTL_IDNA_VARIANT_2003', 0);
|
||||
}
|
||||
if (!defined('INTL_IDNA_VARIANT_UTS46')) {
|
||||
define('INTL_IDNA_VARIANT_UTS46', 1);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_EMPTY_LABEL')) {
|
||||
define('IDNA_ERROR_EMPTY_LABEL', 1);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LABEL_TOO_LONG')) {
|
||||
define('IDNA_ERROR_LABEL_TOO_LONG', 2);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) {
|
||||
define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LEADING_HYPHEN')) {
|
||||
define('IDNA_ERROR_LEADING_HYPHEN', 8);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_TRAILING_HYPHEN')) {
|
||||
define('IDNA_ERROR_TRAILING_HYPHEN', 16);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_HYPHEN_3_4')) {
|
||||
define('IDNA_ERROR_HYPHEN_3_4', 32);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LEADING_COMBINING_MARK')) {
|
||||
define('IDNA_ERROR_LEADING_COMBINING_MARK', 64);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_DISALLOWED')) {
|
||||
define('IDNA_ERROR_DISALLOWED', 128);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_PUNYCODE')) {
|
||||
define('IDNA_ERROR_PUNYCODE', 256);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LABEL_HAS_DOT')) {
|
||||
define('IDNA_ERROR_LABEL_HAS_DOT', 512);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_INVALID_ACE_LABEL')) {
|
||||
define('IDNA_ERROR_INVALID_ACE_LABEL', 1024);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_BIDI')) {
|
||||
define('IDNA_ERROR_BIDI', 2048);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_CONTEXTJ')) {
|
||||
define('IDNA_ERROR_CONTEXTJ', 4096);
|
||||
}
|
||||
|
||||
if (\PHP_VERSION_ID < 70400) {
|
||||
if (!function_exists('idn_to_ascii')) {
|
||||
function idn_to_ascii($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_2003, &$idna_info = null) { return p\Idn::idn_to_ascii($domain, $flags, $variant, $idna_info); }
|
||||
}
|
||||
if (!function_exists('idn_to_utf8')) {
|
||||
function idn_to_utf8($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_2003, &$idna_info = null) { return p\Idn::idn_to_utf8($domain, $flags, $variant, $idna_info); }
|
||||
}
|
||||
} else {
|
||||
if (!function_exists('idn_to_ascii')) {
|
||||
function idn_to_ascii($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_UTS46, &$idna_info = null) { return p\Idn::idn_to_ascii($domain, $flags, $variant, $idna_info); }
|
||||
}
|
||||
if (!function_exists('idn_to_utf8')) {
|
||||
function idn_to_utf8($domain, $flags = 0, $variant = \INTL_IDNA_VARIANT_UTS46, &$idna_info = null) { return p\Idn::idn_to_utf8($domain, $flags, $variant, $idna_info); }
|
||||
}
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Symfony\Polyfill\Intl\Idn as p;
|
||||
|
||||
if (!defined('U_IDNA_PROHIBITED_ERROR')) {
|
||||
define('U_IDNA_PROHIBITED_ERROR', 66560);
|
||||
}
|
||||
if (!defined('U_IDNA_ERROR_START')) {
|
||||
define('U_IDNA_ERROR_START', 66560);
|
||||
}
|
||||
if (!defined('U_IDNA_UNASSIGNED_ERROR')) {
|
||||
define('U_IDNA_UNASSIGNED_ERROR', 66561);
|
||||
}
|
||||
if (!defined('U_IDNA_CHECK_BIDI_ERROR')) {
|
||||
define('U_IDNA_CHECK_BIDI_ERROR', 66562);
|
||||
}
|
||||
if (!defined('U_IDNA_STD3_ASCII_RULES_ERROR')) {
|
||||
define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563);
|
||||
}
|
||||
if (!defined('U_IDNA_ACE_PREFIX_ERROR')) {
|
||||
define('U_IDNA_ACE_PREFIX_ERROR', 66564);
|
||||
}
|
||||
if (!defined('U_IDNA_VERIFICATION_ERROR')) {
|
||||
define('U_IDNA_VERIFICATION_ERROR', 66565);
|
||||
}
|
||||
if (!defined('U_IDNA_LABEL_TOO_LONG_ERROR')) {
|
||||
define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566);
|
||||
}
|
||||
if (!defined('U_IDNA_ZERO_LENGTH_LABEL_ERROR')) {
|
||||
define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567);
|
||||
}
|
||||
if (!defined('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR')) {
|
||||
define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568);
|
||||
}
|
||||
if (!defined('U_IDNA_ERROR_LIMIT')) {
|
||||
define('U_IDNA_ERROR_LIMIT', 66569);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_PROHIBITED_ERROR')) {
|
||||
define('U_STRINGPREP_PROHIBITED_ERROR', 66560);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_UNASSIGNED_ERROR')) {
|
||||
define('U_STRINGPREP_UNASSIGNED_ERROR', 66561);
|
||||
}
|
||||
if (!defined('U_STRINGPREP_CHECK_BIDI_ERROR')) {
|
||||
define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562);
|
||||
}
|
||||
if (!defined('IDNA_DEFAULT')) {
|
||||
define('IDNA_DEFAULT', 0);
|
||||
}
|
||||
if (!defined('IDNA_ALLOW_UNASSIGNED')) {
|
||||
define('IDNA_ALLOW_UNASSIGNED', 1);
|
||||
}
|
||||
if (!defined('IDNA_USE_STD3_RULES')) {
|
||||
define('IDNA_USE_STD3_RULES', 2);
|
||||
}
|
||||
if (!defined('IDNA_CHECK_BIDI')) {
|
||||
define('IDNA_CHECK_BIDI', 4);
|
||||
}
|
||||
if (!defined('IDNA_CHECK_CONTEXTJ')) {
|
||||
define('IDNA_CHECK_CONTEXTJ', 8);
|
||||
}
|
||||
if (!defined('IDNA_NONTRANSITIONAL_TO_ASCII')) {
|
||||
define('IDNA_NONTRANSITIONAL_TO_ASCII', 16);
|
||||
}
|
||||
if (!defined('IDNA_NONTRANSITIONAL_TO_UNICODE')) {
|
||||
define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32);
|
||||
}
|
||||
if (!defined('INTL_IDNA_VARIANT_UTS46')) {
|
||||
define('INTL_IDNA_VARIANT_UTS46', 1);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_EMPTY_LABEL')) {
|
||||
define('IDNA_ERROR_EMPTY_LABEL', 1);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LABEL_TOO_LONG')) {
|
||||
define('IDNA_ERROR_LABEL_TOO_LONG', 2);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_DOMAIN_NAME_TOO_LONG')) {
|
||||
define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LEADING_HYPHEN')) {
|
||||
define('IDNA_ERROR_LEADING_HYPHEN', 8);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_TRAILING_HYPHEN')) {
|
||||
define('IDNA_ERROR_TRAILING_HYPHEN', 16);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_HYPHEN_3_4')) {
|
||||
define('IDNA_ERROR_HYPHEN_3_4', 32);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LEADING_COMBINING_MARK')) {
|
||||
define('IDNA_ERROR_LEADING_COMBINING_MARK', 64);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_DISALLOWED')) {
|
||||
define('IDNA_ERROR_DISALLOWED', 128);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_PUNYCODE')) {
|
||||
define('IDNA_ERROR_PUNYCODE', 256);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_LABEL_HAS_DOT')) {
|
||||
define('IDNA_ERROR_LABEL_HAS_DOT', 512);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_INVALID_ACE_LABEL')) {
|
||||
define('IDNA_ERROR_INVALID_ACE_LABEL', 1024);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_BIDI')) {
|
||||
define('IDNA_ERROR_BIDI', 2048);
|
||||
}
|
||||
if (!defined('IDNA_ERROR_CONTEXTJ')) {
|
||||
define('IDNA_ERROR_CONTEXTJ', 4096);
|
||||
}
|
||||
|
||||
if (!function_exists('idn_to_ascii')) {
|
||||
function idn_to_ascii(?string $domain, ?int $flags = 0, ?int $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = null): string|false { return p\Idn::idn_to_ascii((string) $domain, (int) $flags, (int) $variant, $idna_info); }
|
||||
}
|
||||
if (!function_exists('idn_to_utf8')) {
|
||||
function idn_to_utf8(?string $domain, ?int $flags = 0, ?int $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = null): string|false { return p\Idn::idn_to_utf8((string) $domain, (int) $flags, (int) $variant, $idna_info); }
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"type": "library",
|
||||
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
|
||||
"keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "idn"],
|
||||
"homepage": "https://symfony.com",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Laurent Bassin",
|
||||
"email": "laurent@bassin.info"
|
||||
},
|
||||
{
|
||||
"name": "Trevor Rowbotham",
|
||||
"email": "trevor.rowbotham@pm.me"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
|
||||
"files": [ "bootstrap.php" ]
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user