Upgrade dependencies to match PHP 8.1+ requirement
This commit is contained in:
parent
e1359e4715
commit
b9300198e3
@ -27,7 +27,7 @@
|
|||||||
"rmccue/requests" : "^2.0",
|
"rmccue/requests" : "^2.0",
|
||||||
"pomo/pomo" : "^1.4",
|
"pomo/pomo" : "^1.4",
|
||||||
"geoip2/geoip2" : "^2.10",
|
"geoip2/geoip2" : "^2.10",
|
||||||
"aura/sql": "^5.0",
|
"aura/sql": "^6.0",
|
||||||
"jakeasmith/http_build_url": "^1.0",
|
"jakeasmith/http_build_url": "^1.0",
|
||||||
"symfony/polyfill-mbstring": "^1.15",
|
"symfony/polyfill-mbstring": "^1.15",
|
||||||
"symfony/polyfill-intl-idn": "^1.17",
|
"symfony/polyfill-intl-idn": "^1.17",
|
||||||
|
16
composer.lock
generated
16
composer.lock
generated
@ -4,25 +4,25 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "1d5e2036274043d1e0e9e3243991653e",
|
"content-hash": "5e687d6aa23e978bd628bd3cda68d716",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "aura/sql",
|
"name": "aura/sql",
|
||||||
"version": "5.0.3",
|
"version": "6.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/auraphp/Aura.Sql.git",
|
"url": "https://github.com/auraphp/Aura.Sql.git",
|
||||||
"reference": "fd7a6dd1c9d2a1da5754c50f287f8be8a27db0e7"
|
"reference": "8e2bb362e8953198df3682c9122e8b9edab5ff20"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/auraphp/Aura.Sql/zipball/fd7a6dd1c9d2a1da5754c50f287f8be8a27db0e7",
|
"url": "https://api.github.com/repos/auraphp/Aura.Sql/zipball/8e2bb362e8953198df3682c9122e8b9edab5ff20",
|
||||||
"reference": "fd7a6dd1c9d2a1da5754c50f287f8be8a27db0e7",
|
"reference": "8e2bb362e8953198df3682c9122e8b9edab5ff20",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-pdo": "*",
|
"ext-pdo": "*",
|
||||||
"php": ">=8.1",
|
"php": "^8.4",
|
||||||
"psr/log": "^1.0 || ^2.0 || ^3.0"
|
"psr/log": "^1.0 || ^2.0 || ^3.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
@ -60,9 +60,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/auraphp/Aura.Sql/issues",
|
"issues": "https://github.com/auraphp/Aura.Sql/issues",
|
||||||
"source": "https://github.com/auraphp/Aura.Sql/tree/5.0.3"
|
"source": "https://github.com/auraphp/Aura.Sql/tree/6.0.0"
|
||||||
},
|
},
|
||||||
"time": "2025-01-22T06:39:17+00:00"
|
"time": "2025-01-22T06:43:21+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "composer/ca-bundle",
|
"name": "composer/ca-bundle",
|
||||||
|
9
includes/vendor/aura/sql/src/DecoratedPdo.php
generated
vendored
9
includes/vendor/aura/sql/src/DecoratedPdo.php
generated
vendored
@ -48,9 +48,14 @@ class DecoratedPdo extends AbstractExtendedPdo
|
|||||||
string $dsn,
|
string $dsn,
|
||||||
?string $username = null,
|
?string $username = null,
|
||||||
?string $password = null,
|
?string $password = null,
|
||||||
?array $options = []
|
?array $options = null,
|
||||||
|
?ProfilerInterface $profiler = null
|
||||||
): static {
|
): static {
|
||||||
return new static(\PDO::connect($dsn, $username, $password, $options));
|
if (version_compare(PHP_VERSION, '8.4.0', '>=')) {
|
||||||
|
return new static(\PDO::connect($dsn, $username, $password, $options));
|
||||||
|
} else {
|
||||||
|
return new static(new PDO($dsn, $username, $password, $options), $profiler);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
39
includes/vendor/aura/sql/src/ExtendedPdo.php
generated
vendored
39
includes/vendor/aura/sql/src/ExtendedPdo.php
generated
vendored
@ -21,6 +21,9 @@ use PDO;
|
|||||||
*/
|
*/
|
||||||
class ExtendedPdo extends AbstractExtendedPdo
|
class ExtendedPdo extends AbstractExtendedPdo
|
||||||
{
|
{
|
||||||
|
public const CONNECT_IMMEDIATELY = 'auraSqlImmediate';
|
||||||
|
public const DRIVER_SPECIFIC = 'auraSqlDriverSpecific';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Constructor arguments for instantiating the PDO connection.
|
* Constructor arguments for instantiating the PDO connection.
|
||||||
@ -30,6 +33,14 @@ class ExtendedPdo extends AbstractExtendedPdo
|
|||||||
*/
|
*/
|
||||||
protected array $args = [];
|
protected array $args = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Flag for how to construct the PDO object
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected bool $driverSpecific = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Constructor.
|
* Constructor.
|
||||||
@ -64,6 +75,12 @@ class ExtendedPdo extends AbstractExtendedPdo
|
|||||||
$options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
|
$options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check option for driver specific construct and set flag for lazy loading later
|
||||||
|
if (isset($options[static::DRIVER_SPECIFIC])) {
|
||||||
|
$this->driverSpecific = (bool)$options[static::DRIVER_SPECIFIC];
|
||||||
|
unset($options[static::DRIVER_SPECIFIC]);
|
||||||
|
}
|
||||||
|
|
||||||
// retain the arguments for later
|
// retain the arguments for later
|
||||||
$this->args = [
|
$this->args = [
|
||||||
$dsn,
|
$dsn,
|
||||||
@ -83,15 +100,28 @@ class ExtendedPdo extends AbstractExtendedPdo
|
|||||||
|
|
||||||
// set quotes for identifier names
|
// set quotes for identifier names
|
||||||
$this->setQuoteName($parts[0]);
|
$this->setQuoteName($parts[0]);
|
||||||
|
|
||||||
|
// create a connection immediately
|
||||||
|
if (isset($options[static::CONNECT_IMMEDIATELY])) {
|
||||||
|
$connectImmediately = (bool)$options[static::CONNECT_IMMEDIATELY];
|
||||||
|
unset($options[static::CONNECT_IMMEDIATELY]);
|
||||||
|
if ($connectImmediately) {
|
||||||
|
$this->lazyConnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function connect(
|
public static function connect(
|
||||||
string $dsn,
|
string $dsn,
|
||||||
?string $username = null,
|
?string $username = null,
|
||||||
?string $password = null,
|
?string $password = null,
|
||||||
?array $options = []
|
?array $options = null,
|
||||||
|
array $queries = [],
|
||||||
|
?ProfilerInterface $profiler = null
|
||||||
): static {
|
): static {
|
||||||
return new static($dsn, $username, $password, $options);
|
$options ??= [];
|
||||||
|
$options[static::DRIVER_SPECIFIC] = true;
|
||||||
|
return new static($dsn, $username, $password, $options, $queries, $profiler);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -109,6 +139,11 @@ class ExtendedPdo extends AbstractExtendedPdo
|
|||||||
// connect
|
// connect
|
||||||
$this->profiler->start(__FUNCTION__);
|
$this->profiler->start(__FUNCTION__);
|
||||||
list($dsn, $username, $password, $options, $queries) = $this->args;
|
list($dsn, $username, $password, $options, $queries) = $this->args;
|
||||||
|
if ($this->driverSpecific && version_compare(PHP_VERSION, '8.4.0', '>=')) {
|
||||||
|
$this->pdo = PDO::connect($dsn, $username, $password, $options);
|
||||||
|
} else {
|
||||||
|
$this->pdo = new PDO($dsn, $username, $password, $options);
|
||||||
|
}
|
||||||
$this->pdo = new PDO($dsn, $username, $password, $options);
|
$this->pdo = new PDO($dsn, $username, $password, $options);
|
||||||
$this->profiler->finish();
|
$this->profiler->finish();
|
||||||
|
|
||||||
|
2
includes/vendor/autoload.php
generated
vendored
2
includes/vendor/autoload.php
generated
vendored
@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) {
|
|||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
return ComposerAutoloaderInit2d6d15a8f6cc4bfbfd4a2943a6c4df59::getLoader();
|
return ComposerAutoloaderInit1d5e2036274043d1e0e9e3243991653e::getLoader();
|
||||||
|
20
includes/vendor/composer/InstalledVersions.php
generated
vendored
20
includes/vendor/composer/InstalledVersions.php
generated
vendored
@ -32,11 +32,6 @@ class InstalledVersions
|
|||||||
*/
|
*/
|
||||||
private static $installed;
|
private static $installed;
|
||||||
|
|
||||||
/**
|
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
private static $installedIsLocalDir;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var bool|null
|
* @var bool|null
|
||||||
*/
|
*/
|
||||||
@ -314,12 +309,6 @@ class InstalledVersions
|
|||||||
{
|
{
|
||||||
self::$installed = $data;
|
self::$installed = $data;
|
||||||
self::$installedByVendor = array();
|
self::$installedByVendor = array();
|
||||||
|
|
||||||
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
|
|
||||||
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
|
|
||||||
// so we have to assume it does not, and that may result in duplicate data being returned when listing
|
|
||||||
// all installed packages for example
|
|
||||||
self::$installedIsLocalDir = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -336,9 +325,7 @@ class InstalledVersions
|
|||||||
$copiedLocalDir = false;
|
$copiedLocalDir = false;
|
||||||
|
|
||||||
if (self::$canGetVendors) {
|
if (self::$canGetVendors) {
|
||||||
$selfDir = strtr(__DIR__, '\\', '/');
|
|
||||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||||
$vendorDir = strtr($vendorDir, '\\', '/');
|
|
||||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||||
$installed[] = self::$installedByVendor[$vendorDir];
|
$installed[] = self::$installedByVendor[$vendorDir];
|
||||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||||
@ -346,14 +333,11 @@ class InstalledVersions
|
|||||||
$required = require $vendorDir.'/composer/installed.php';
|
$required = require $vendorDir.'/composer/installed.php';
|
||||||
self::$installedByVendor[$vendorDir] = $required;
|
self::$installedByVendor[$vendorDir] = $required;
|
||||||
$installed[] = $required;
|
$installed[] = $required;
|
||||||
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
|
if (strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||||
self::$installed = $required;
|
self::$installed = $required;
|
||||||
self::$installedIsLocalDir = true;
|
$copiedLocalDir = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
|
|
||||||
$copiedLocalDir = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
includes/vendor/composer/autoload_files.php
generated
vendored
1
includes/vendor/composer/autoload_files.php
generated
vendored
@ -7,7 +7,6 @@ $baseDir = dirname(dirname($vendorDir));
|
|||||||
|
|
||||||
return array(
|
return array(
|
||||||
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
|
||||||
'b45b351e6b6f7487d819961fef2fda77' => $vendorDir . '/jakeasmith/http_build_url/src/http_build_url.php',
|
'b45b351e6b6f7487d819961fef2fda77' => $vendorDir . '/jakeasmith/http_build_url/src/http_build_url.php',
|
||||||
'941748b3c8cae4466c827dfb5ca9602a' => $vendorDir . '/rmccue/requests/library/Deprecated.php',
|
'941748b3c8cae4466c827dfb5ca9602a' => $vendorDir . '/rmccue/requests/library/Deprecated.php',
|
||||||
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
|
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
|
||||||
|
3
includes/vendor/composer/autoload_psr4.php
generated
vendored
3
includes/vendor/composer/autoload_psr4.php
generated
vendored
@ -8,12 +8,11 @@ $baseDir = dirname(dirname($vendorDir));
|
|||||||
return array(
|
return array(
|
||||||
'YOURLS\\' => array($baseDir . '/includes'),
|
'YOURLS\\' => array($baseDir . '/includes'),
|
||||||
'WpOrg\\Requests\\' => array($vendorDir . '/rmccue/requests/src'),
|
'WpOrg\\Requests\\' => array($vendorDir . '/rmccue/requests/src'),
|
||||||
'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
|
|
||||||
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
|
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
|
||||||
'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
|
'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
|
||||||
'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'),
|
'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'),
|
||||||
'Spatie\\ArrayToXml\\' => array($vendorDir . '/spatie/array-to-xml/src'),
|
'Spatie\\ArrayToXml\\' => array($vendorDir . '/spatie/array-to-xml/src'),
|
||||||
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
|
'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
|
||||||
'POMO\\' => array($vendorDir . '/pomo/pomo/src'),
|
'POMO\\' => array($vendorDir . '/pomo/pomo/src'),
|
||||||
'MaxMind\\WebService\\' => array($vendorDir . '/maxmind/web-service-common/src/WebService'),
|
'MaxMind\\WebService\\' => array($vendorDir . '/maxmind/web-service-common/src/WebService'),
|
||||||
'MaxMind\\Exception\\' => array($vendorDir . '/maxmind/web-service-common/src/Exception'),
|
'MaxMind\\Exception\\' => array($vendorDir . '/maxmind/web-service-common/src/Exception'),
|
||||||
|
10
includes/vendor/composer/autoload_real.php
generated
vendored
10
includes/vendor/composer/autoload_real.php
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
// autoload_real.php @generated by Composer
|
||||||
|
|
||||||
class ComposerAutoloaderInit2d6d15a8f6cc4bfbfd4a2943a6c4df59
|
class ComposerAutoloaderInit1d5e2036274043d1e0e9e3243991653e
|
||||||
{
|
{
|
||||||
private static $loader;
|
private static $loader;
|
||||||
|
|
||||||
@ -24,16 +24,16 @@ class ComposerAutoloaderInit2d6d15a8f6cc4bfbfd4a2943a6c4df59
|
|||||||
|
|
||||||
require __DIR__ . '/platform_check.php';
|
require __DIR__ . '/platform_check.php';
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInit2d6d15a8f6cc4bfbfd4a2943a6c4df59', 'loadClassLoader'), true, true);
|
spl_autoload_register(array('ComposerAutoloaderInit1d5e2036274043d1e0e9e3243991653e', 'loadClassLoader'), true, true);
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInit2d6d15a8f6cc4bfbfd4a2943a6c4df59', 'loadClassLoader'));
|
spl_autoload_unregister(array('ComposerAutoloaderInit1d5e2036274043d1e0e9e3243991653e', 'loadClassLoader'));
|
||||||
|
|
||||||
require __DIR__ . '/autoload_static.php';
|
require __DIR__ . '/autoload_static.php';
|
||||||
call_user_func(\Composer\Autoload\ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59::getInitializer($loader));
|
call_user_func(\Composer\Autoload\ComposerStaticInit1d5e2036274043d1e0e9e3243991653e::getInitializer($loader));
|
||||||
|
|
||||||
$loader->register(true);
|
$loader->register(true);
|
||||||
|
|
||||||
$filesToLoad = \Composer\Autoload\ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59::$files;
|
$filesToLoad = \Composer\Autoload\ComposerStaticInit1d5e2036274043d1e0e9e3243991653e::$files;
|
||||||
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
|
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||||
|
18
includes/vendor/composer/autoload_static.php
generated
vendored
18
includes/vendor/composer/autoload_static.php
generated
vendored
@ -4,11 +4,10 @@
|
|||||||
|
|
||||||
namespace Composer\Autoload;
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
class ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59
|
class ComposerStaticInit1d5e2036274043d1e0e9e3243991653e
|
||||||
{
|
{
|
||||||
public static $files = array (
|
public static $files = array (
|
||||||
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
|
||||||
'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php',
|
'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php',
|
||||||
'941748b3c8cae4466c827dfb5ca9602a' => __DIR__ . '/..' . '/rmccue/requests/library/Deprecated.php',
|
'941748b3c8cae4466c827dfb5ca9602a' => __DIR__ . '/..' . '/rmccue/requests/library/Deprecated.php',
|
||||||
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
|
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
|
||||||
@ -26,7 +25,6 @@ class ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59
|
|||||||
),
|
),
|
||||||
'S' =>
|
'S' =>
|
||||||
array (
|
array (
|
||||||
'Symfony\\Polyfill\\Php72\\' => 23,
|
|
||||||
'Symfony\\Polyfill\\Mbstring\\' => 26,
|
'Symfony\\Polyfill\\Mbstring\\' => 26,
|
||||||
'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
|
'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
|
||||||
'Symfony\\Polyfill\\Intl\\Idn\\' => 26,
|
'Symfony\\Polyfill\\Intl\\Idn\\' => 26,
|
||||||
@ -66,10 +64,6 @@ class ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59
|
|||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/rmccue/requests/src',
|
0 => __DIR__ . '/..' . '/rmccue/requests/src',
|
||||||
),
|
),
|
||||||
'Symfony\\Polyfill\\Php72\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
|
|
||||||
),
|
|
||||||
'Symfony\\Polyfill\\Mbstring\\' =>
|
'Symfony\\Polyfill\\Mbstring\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
|
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
|
||||||
@ -88,7 +82,7 @@ class ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59
|
|||||||
),
|
),
|
||||||
'Psr\\Log\\' =>
|
'Psr\\Log\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
|
0 => __DIR__ . '/..' . '/psr/log/src',
|
||||||
),
|
),
|
||||||
'POMO\\' =>
|
'POMO\\' =>
|
||||||
array (
|
array (
|
||||||
@ -139,10 +133,10 @@ class ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59
|
|||||||
public static function getInitializer(ClassLoader $loader)
|
public static function getInitializer(ClassLoader $loader)
|
||||||
{
|
{
|
||||||
return \Closure::bind(function () use ($loader) {
|
return \Closure::bind(function () use ($loader) {
|
||||||
$loader->prefixLengthsPsr4 = ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59::$prefixLengthsPsr4;
|
$loader->prefixLengthsPsr4 = ComposerStaticInit1d5e2036274043d1e0e9e3243991653e::$prefixLengthsPsr4;
|
||||||
$loader->prefixDirsPsr4 = ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59::$prefixDirsPsr4;
|
$loader->prefixDirsPsr4 = ComposerStaticInit1d5e2036274043d1e0e9e3243991653e::$prefixDirsPsr4;
|
||||||
$loader->prefixesPsr0 = ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59::$prefixesPsr0;
|
$loader->prefixesPsr0 = ComposerStaticInit1d5e2036274043d1e0e9e3243991653e::$prefixesPsr0;
|
||||||
$loader->classMap = ComposerStaticInit2d6d15a8f6cc4bfbfd4a2943a6c4df59::$classMap;
|
$loader->classMap = ComposerStaticInit1d5e2036274043d1e0e9e3243991653e::$classMap;
|
||||||
|
|
||||||
}, null, ClassLoader::class);
|
}, null, ClassLoader::class);
|
||||||
}
|
}
|
||||||
|
14
includes/vendor/composer/ca-bundle/composer.json
generated
vendored
14
includes/vendor/composer/ca-bundle/composer.json
generated
vendored
@ -24,13 +24,13 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"ext-openssl": "*",
|
"ext-openssl": "*",
|
||||||
"ext-pcre": "*",
|
"ext-pcre": "*",
|
||||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
"php": "^7.2 || ^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"symfony/phpunit-bridge": "^4.2 || ^5",
|
"phpunit/phpunit": "^8 || ^9",
|
||||||
"phpstan/phpstan": "^0.12.55",
|
"phpstan/phpstan": "^1.10",
|
||||||
"psr/log": "^1.0",
|
"psr/log": "^1.0 || ^2.0 || ^3.0",
|
||||||
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
|
"symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
@ -48,7 +48,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT=1 vendor/bin/simple-phpunit",
|
"test": "@php phpunit",
|
||||||
"phpstan": "vendor/bin/phpstan analyse"
|
"phpstan": "@php phpstan analyse"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
861
includes/vendor/composer/ca-bundle/res/cacert.pem
generated
vendored
861
includes/vendor/composer/ca-bundle/res/cacert.pem
generated
vendored
@ -1,7 +1,9 @@
|
|||||||
##
|
##
|
||||||
## Bundle of CA Root Certificates
|
## Bundle of CA Root Certificates
|
||||||
##
|
##
|
||||||
## Certificate data from Mozilla as of: Tue Oct 11 03:12:05 2022 GMT
|
## Certificate data from Mozilla as of: Tue Dec 31 04:12:05 2024 GMT
|
||||||
|
##
|
||||||
|
## Find updated versions here: https://curl.se/docs/caextract.html
|
||||||
##
|
##
|
||||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
## This is a bundle of X.509 certificates of public Certificate Authorities
|
||||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
## (CA). These were automatically extracted from Mozilla's root certificates
|
||||||
@ -14,7 +16,7 @@
|
|||||||
## Just configure this file as the SSLCACertificateFile.
|
## Just configure this file as the SSLCACertificateFile.
|
||||||
##
|
##
|
||||||
## Conversion done with mk-ca-bundle.pl version 1.29.
|
## Conversion done with mk-ca-bundle.pl version 1.29.
|
||||||
## SHA256: 3ff8bd209b5f2e739b9f2b96eacb694a774114685b02978257824f37ff528f71
|
## SHA256: c99d6d3f8d3d4e47719ba2b648992f5b58b150128d3aca3c05c566d8dc98e116
|
||||||
##
|
##
|
||||||
|
|
||||||
|
|
||||||
@ -200,27 +202,6 @@ vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
|
|||||||
qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
|
qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Security Communication Root CA
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
|
||||||
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
|
||||||
HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
|
||||||
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
|
||||||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
|
|
||||||
8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
|
|
||||||
DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
|
|
||||||
5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
|
|
||||||
DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
|
|
||||||
JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
|
|
||||||
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
|
|
||||||
0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
|
|
||||||
mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
|
|
||||||
s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
|
|
||||||
6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
|
|
||||||
FL39vmwLAw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
XRamp Global CA Root
|
XRamp Global CA Root
|
||||||
====================
|
====================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -489,29 +470,6 @@ IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
|
|||||||
+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
|
+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Network Solutions Certificate Authority
|
|
||||||
=======================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
|
|
||||||
EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
|
|
||||||
IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
|
|
||||||
MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
|
||||||
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
|
||||||
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
|
|
||||||
jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
|
|
||||||
aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
|
|
||||||
crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
|
|
||||||
/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
|
|
||||||
AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
|
|
||||||
BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
|
|
||||||
bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
|
|
||||||
A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
|
|
||||||
4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
|
|
||||||
GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
|
||||||
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
|
|
||||||
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
COMODO ECC Certification Authority
|
COMODO ECC Certification Authority
|
||||||
==================================
|
==================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -626,47 +584,6 @@ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
|
|||||||
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Hongkong Post Root CA 1
|
|
||||||
=======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
|
|
||||||
DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
|
|
||||||
NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
|
|
||||||
IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
|
|
||||||
AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
|
|
||||||
ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
|
|
||||||
auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
|
|
||||||
qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
|
|
||||||
V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
|
|
||||||
HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
|
|
||||||
h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
|
|
||||||
l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
|
|
||||||
IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
|
|
||||||
T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
|
|
||||||
c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SecureSign RootCA11
|
|
||||||
===================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
|
|
||||||
SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
|
|
||||||
b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
|
|
||||||
KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
|
|
||||||
cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
|
|
||||||
TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
|
|
||||||
wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
|
|
||||||
g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
|
|
||||||
O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
|
|
||||||
bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
|
|
||||||
t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
|
|
||||||
OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
|
|
||||||
bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
|
|
||||||
Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
|
|
||||||
y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
|
|
||||||
lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Microsec e-Szigno Root CA 2009
|
Microsec e-Szigno Root CA 2009
|
||||||
==============================
|
==============================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -712,39 +629,6 @@ YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
|
|||||||
kpeDMdmztcpHWD9f
|
kpeDMdmztcpHWD9f
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Autoridad de Certificacion Firmaprofesional CIF A62634068
|
|
||||||
=========================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
|
|
||||||
BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
|
|
||||||
MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
|
|
||||||
QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
|
|
||||||
NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
|
|
||||||
Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
|
|
||||||
B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
|
|
||||||
7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
|
|
||||||
ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
|
|
||||||
plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
|
|
||||||
MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
|
|
||||||
LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
|
|
||||||
bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
|
|
||||||
vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
|
|
||||||
EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
|
|
||||||
DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
|
|
||||||
cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
|
|
||||||
bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
|
|
||||||
ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
|
|
||||||
51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
|
|
||||||
R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
|
|
||||||
T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
|
|
||||||
Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
|
|
||||||
osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
|
|
||||||
crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
|
|
||||||
saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
|
|
||||||
KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
|
|
||||||
6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Izenpe.com
|
Izenpe.com
|
||||||
==========
|
==========
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1284,40 +1168,6 @@ Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
|
|||||||
WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
|
WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
E-Tugra Certification Authority
|
|
||||||
===============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
|
|
||||||
DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
|
|
||||||
ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
|
|
||||||
ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
|
|
||||||
NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
|
|
||||||
QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
|
|
||||||
cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
|
|
||||||
DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
|
|
||||||
MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
|
|
||||||
hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
|
|
||||||
CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
|
|
||||||
ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
|
|
||||||
BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
|
|
||||||
E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
|
|
||||||
rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
|
|
||||||
jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
|
|
||||||
rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
|
|
||||||
dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
|
|
||||||
/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
|
|
||||||
MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
|
|
||||||
kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
|
|
||||||
XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
|
|
||||||
VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
|
|
||||||
a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
|
|
||||||
dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
|
|
||||||
KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
|
|
||||||
Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
|
|
||||||
8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
|
|
||||||
C7TbO6Orb1wdtn7os4I07QZcJA==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
T-TeleSec GlobalRoot Class 2
|
T-TeleSec GlobalRoot Class 2
|
||||||
============================
|
============================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1654,36 +1504,6 @@ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
|
|||||||
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
|
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Staat der Nederlanden EV Root CA
|
|
||||||
================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
IdenTrust Commercial Root CA 1
|
IdenTrust Commercial Root CA 1
|
||||||
==============================
|
==============================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -2135,87 +1955,6 @@ F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ
|
|||||||
aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
|
aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
TrustCor RootCert CA-1
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP
|
|
||||||
MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
|
|
||||||
U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
|
||||||
dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx
|
|
||||||
MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu
|
|
||||||
YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe
|
|
||||||
VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy
|
|
||||||
dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq
|
|
||||||
jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4
|
|
||||||
pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0
|
|
||||||
JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h
|
|
||||||
gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw
|
|
||||||
/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j
|
|
||||||
BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
|
||||||
AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5
|
|
||||||
mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
|
|
||||||
ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C
|
|
||||||
qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P
|
|
||||||
3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TrustCor RootCert CA-2
|
|
||||||
======================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w
|
|
||||||
DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT
|
|
||||||
eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0
|
|
||||||
eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy
|
|
||||||
MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h
|
|
||||||
bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
|
|
||||||
cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0
|
|
||||||
IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb
|
|
||||||
ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk
|
|
||||||
RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1
|
|
||||||
oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb
|
|
||||||
XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1
|
|
||||||
/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q
|
|
||||||
jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP
|
|
||||||
eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg
|
|
||||||
rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
|
|
||||||
8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU
|
|
||||||
2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD
|
|
||||||
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h
|
|
||||||
Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp
|
|
||||||
kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv
|
|
||||||
2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3
|
|
||||||
S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw
|
|
||||||
PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv
|
|
||||||
DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU
|
|
||||||
RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE
|
|
||||||
xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX
|
|
||||||
RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TrustCor ECA-1
|
|
||||||
==============
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP
|
|
||||||
MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
|
|
||||||
U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
|
||||||
dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw
|
|
||||||
N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5
|
|
||||||
MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y
|
|
||||||
IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG
|
|
||||||
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR
|
|
||||||
MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23
|
|
||||||
xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc
|
|
||||||
p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+
|
|
||||||
fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj
|
|
||||||
YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL
|
|
||||||
f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
|
|
||||||
AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u
|
|
||||||
/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
|
|
||||||
hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs
|
|
||||||
J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC
|
|
||||||
jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SSL.com Root Certification Authority RSA
|
SSL.com Root Certification Authority RSA
|
||||||
========================================
|
========================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -2559,40 +2298,6 @@ hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB
|
|||||||
dBb9HxEGmpv0
|
dBb9HxEGmpv0
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Entrust Root Certification Authority - G4
|
|
||||||
=========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV
|
|
||||||
BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu
|
|
||||||
bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1
|
|
||||||
dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1
|
|
||||||
dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT
|
|
||||||
AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
|
|
||||||
L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv
|
|
||||||
cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv
|
|
||||||
cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D
|
|
||||||
umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV
|
|
||||||
3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds
|
|
||||||
8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ
|
|
||||||
e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7
|
|
||||||
ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X
|
|
||||||
xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV
|
|
||||||
7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
|
|
||||||
dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW
|
|
||||||
Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T
|
|
||||||
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n
|
|
||||||
MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q
|
|
||||||
jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht
|
|
||||||
7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK
|
|
||||||
YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt
|
|
||||||
jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+
|
|
||||||
m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW
|
|
||||||
RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA
|
|
||||||
JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G
|
|
||||||
+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT
|
|
||||||
kcpG2om3PVODLAgfi49T3f+sHw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Microsoft ECC Root Certificate Authority 2017
|
Microsoft ECC Root Certificate Authority 2017
|
||||||
=============================================
|
=============================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -3410,85 +3115,6 @@ AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8
|
|||||||
rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
E-Tugra Global Root CA RSA v3
|
|
||||||
=============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
E-Tugra Global Root CA ECC v3
|
|
||||||
=============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMwgYAxCzAJBgNV
|
|
||||||
BAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAbBgNV
|
|
||||||
BAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENB
|
|
||||||
IEVDQyB2MzAeFw0yMDAzMTgwOTQ2NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEP
|
|
||||||
MA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1
|
|
||||||
Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBFQ0MgdjMw
|
|
||||||
djAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQKczLWYHMjLiSF4mDKpL2
|
|
||||||
w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YKfWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31
|
|
||||||
Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQ
|
|
||||||
zPUwHQYDVR0OBBYEFP+CMXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO
|
|
||||||
PQQDAwNpADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/67W4W
|
|
||||||
Aie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFxvmjkI6TZraE3
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Security Communication RootCA3
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Security Communication ECC RootCA1
|
Security Communication ECC RootCA1
|
||||||
==================================
|
==================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -3504,3 +3130,482 @@ BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L
|
|||||||
snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e
|
snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e
|
||||||
N9k=
|
N9k=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
BJCA Global Root CA1
|
||||||
|
====================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
BJCA Global Root CA2
|
||||||
|
====================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD
|
||||||
|
TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg
|
||||||
|
R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE
|
||||||
|
BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC
|
||||||
|
SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl
|
||||||
|
SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK
|
||||||
|
/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI
|
||||||
|
1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8
|
||||||
|
W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g
|
||||||
|
UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Sectigo Public Server Authentication Root E46
|
||||||
|
=============================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH
|
||||||
|
QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2
|
||||||
|
ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5
|
||||||
|
WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0
|
||||||
|
aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr
|
||||||
|
gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0
|
||||||
|
NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud
|
||||||
|
DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
|
||||||
|
/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH
|
||||||
|
lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U
|
||||||
|
SAGKcw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Sectigo Public Server Authentication Root R46
|
||||||
|
=============================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
SSL.com TLS RSA Root CA 2022
|
||||||
|
============================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
SSL.com TLS ECC Root CA 2022
|
||||||
|
============================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV
|
||||||
|
UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v
|
||||||
|
dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx
|
||||||
|
GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg
|
||||||
|
Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy
|
||||||
|
JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1
|
||||||
|
5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7
|
||||||
|
81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG
|
||||||
|
MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w
|
||||||
|
7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5
|
||||||
|
Zn6g6g==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Atos TrustedRoot Root CA ECC TLS 2021
|
||||||
|
=====================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB
|
||||||
|
dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD
|
||||||
|
VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg
|
||||||
|
VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT
|
||||||
|
AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K
|
||||||
|
DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS
|
||||||
|
b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX
|
||||||
|
NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+
|
||||||
|
uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY
|
||||||
|
a3cpetskz2VAv9LcjBHo9H1/IISpQuQo
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Atos TrustedRoot Root CA RSA TLS 2021
|
||||||
|
=====================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
HYMfRsCbvUOZ58SWLs5fyQ==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
TrustAsia Global Root CA G3
|
||||||
|
===========================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
TrustAsia Global Root CA G4
|
||||||
|
===========================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE
|
||||||
|
BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry
|
||||||
|
dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa
|
||||||
|
MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw
|
||||||
|
IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
|
||||||
|
AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8
|
||||||
|
m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF
|
||||||
|
MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/
|
||||||
|
pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA
|
||||||
|
bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk
|
||||||
|
dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
CommScope Public Trust ECC Root-01
|
||||||
|
==================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE
|
||||||
|
BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz
|
||||||
|
dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT
|
||||||
|
AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg
|
||||||
|
RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx
|
||||||
|
eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot
|
||||||
|
6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
|
||||||
|
A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2
|
||||||
|
Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW
|
||||||
|
pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
CommScope Public Trust ECC Root-02
|
||||||
|
==================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE
|
||||||
|
BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz
|
||||||
|
dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT
|
||||||
|
AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg
|
||||||
|
RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M
|
||||||
|
MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE
|
||||||
|
SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
|
||||||
|
A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9
|
||||||
|
Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7
|
||||||
|
3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
CommScope Public Trust RSA Root-01
|
||||||
|
==================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
CommScope Public Trust RSA Root-02
|
||||||
|
==================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
lM47ni3niAIi9G7oyOzWPPO5std3eqx7
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Telekom Security TLS ECC Root 2020
|
||||||
|
==================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE
|
||||||
|
RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl
|
||||||
|
a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz
|
||||||
|
NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg
|
||||||
|
R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG
|
||||||
|
SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1
|
||||||
|
2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC
|
||||||
|
MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
||||||
|
AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ
|
||||||
|
Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU
|
||||||
|
ga/sf+Rn27iQ7t0l
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Telekom Security TLS RSA Root 2023
|
||||||
|
==================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
FIRMAPROFESIONAL CA ROOT-A WEB
|
||||||
|
==============================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF
|
||||||
|
UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4
|
||||||
|
MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2
|
||||||
|
WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h
|
||||||
|
bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM
|
||||||
|
IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6
|
||||||
|
iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg
|
||||||
|
st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD
|
||||||
|
Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB
|
||||||
|
/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL
|
||||||
|
cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ
|
||||||
|
pYXFuXqUPoeovQA=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
TWCA CYBER Root CA
|
||||||
|
==================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
SecureSign Root CA12
|
||||||
|
====================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG
|
||||||
|
A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT
|
||||||
|
ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ
|
||||||
|
BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU
|
||||||
|
U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3
|
||||||
|
emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc
|
||||||
|
J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl
|
||||||
|
fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF
|
||||||
|
EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef
|
||||||
|
NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
||||||
|
AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC
|
||||||
|
AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi
|
||||||
|
LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce
|
||||||
|
mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS
|
||||||
|
vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga
|
||||||
|
aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
SecureSign Root CA14
|
||||||
|
====================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
SecureSign Root CA15
|
||||||
|
====================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE
|
||||||
|
BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1
|
||||||
|
cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV
|
||||||
|
BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj
|
||||||
|
dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G
|
||||||
|
dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB
|
||||||
|
2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
|
||||||
|
AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J
|
||||||
|
fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ
|
||||||
|
SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
150
includes/vendor/composer/ca-bundle/src/CaBundle.php
generated
vendored
150
includes/vendor/composer/ca-bundle/src/CaBundle.php
generated
vendored
@ -24,8 +24,6 @@ class CaBundle
|
|||||||
private static $caPath;
|
private static $caPath;
|
||||||
/** @var array<string, bool> */
|
/** @var array<string, bool> */
|
||||||
private static $caFileValidity = array();
|
private static $caFileValidity = array();
|
||||||
/** @var bool|null */
|
|
||||||
private static $useOpensslParse;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the system CA bundle path, or a path to the bundled one
|
* Returns the system CA bundle path, or a path to the bundled one
|
||||||
@ -64,7 +62,7 @@ class CaBundle
|
|||||||
* @param LoggerInterface $logger optional logger for information about which CA files were loaded
|
* @param LoggerInterface $logger optional logger for information about which CA files were loaded
|
||||||
* @return string path to a CA bundle file or directory
|
* @return string path to a CA bundle file or directory
|
||||||
*/
|
*/
|
||||||
public static function getSystemCaRootBundlePath(LoggerInterface $logger = null)
|
public static function getSystemCaRootBundlePath(?LoggerInterface $logger = null)
|
||||||
{
|
{
|
||||||
if (self::$caPath !== null) {
|
if (self::$caPath !== null) {
|
||||||
return self::$caPath;
|
return self::$caPath;
|
||||||
@ -86,21 +84,19 @@ class CaBundle
|
|||||||
'/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package)
|
'/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package)
|
||||||
'/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package)
|
'/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package)
|
||||||
'/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package)
|
'/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package)
|
||||||
'/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package)
|
|
||||||
'/usr/ssl/certs/ca-bundle.crt', // Cygwin
|
'/usr/ssl/certs/ca-bundle.crt', // Cygwin
|
||||||
'/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package
|
'/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package
|
||||||
'/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option)
|
'/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option)
|
||||||
'/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat?
|
'/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat?
|
||||||
'/etc/ssl/cert.pem', // OpenBSD
|
'/etc/ssl/cert.pem', // OpenBSD
|
||||||
'/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x
|
|
||||||
'/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package
|
'/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package
|
||||||
'/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package
|
'/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package
|
||||||
|
'/opt/homebrew/etc/openssl@3/cert.pem', // macOS silicon homebrew, openssl@3 package
|
||||||
|
'/opt/homebrew/etc/openssl@1.1/cert.pem', // macOS silicon homebrew, openssl@1.1 package
|
||||||
|
'/etc/pki/tls/certs',
|
||||||
|
'/etc/ssl/certs', // FreeBSD
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach($otherLocations as $location) {
|
|
||||||
$otherLocations[] = dirname($location);
|
|
||||||
}
|
|
||||||
|
|
||||||
$caBundlePaths = array_merge($caBundlePaths, $otherLocations);
|
$caBundlePaths = array_merge($caBundlePaths, $otherLocations);
|
||||||
|
|
||||||
foreach ($caBundlePaths as $caBundle) {
|
foreach ($caBundlePaths as $caBundle) {
|
||||||
@ -158,7 +154,7 @@ class CaBundle
|
|||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function validateCaFile($filename, LoggerInterface $logger = null)
|
public static function validateCaFile($filename, ?LoggerInterface $logger = null)
|
||||||
{
|
{
|
||||||
static $warned = false;
|
static $warned = false;
|
||||||
|
|
||||||
@ -168,19 +164,7 @@ class CaBundle
|
|||||||
|
|
||||||
$contents = file_get_contents($filename);
|
$contents = file_get_contents($filename);
|
||||||
|
|
||||||
// assume the CA is valid if php is vulnerable to
|
if (is_string($contents) && strlen($contents) > 0) {
|
||||||
// https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html
|
|
||||||
if (!static::isOpensslParseSafe()) {
|
|
||||||
if (!$warned && $logger) {
|
|
||||||
$logger->warning(sprintf(
|
|
||||||
'Your version of PHP, %s, is affected by CVE-2013-6420 and cannot safely perform certificate validation, we strongly suggest you upgrade.',
|
|
||||||
PHP_VERSION
|
|
||||||
));
|
|
||||||
$warned = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$isValid = !empty($contents);
|
|
||||||
} elseif (is_string($contents) && strlen($contents) > 0) {
|
|
||||||
$contents = preg_replace("/^(\\-+(?:BEGIN|END))\\s+TRUSTED\\s+(CERTIFICATE\\-+)\$/m", '$1 $2', $contents);
|
$contents = preg_replace("/^(\\-+(?:BEGIN|END))\\s+TRUSTED\\s+(CERTIFICATE\\-+)\$/m", '$1 $2', $contents);
|
||||||
if (null === $contents) {
|
if (null === $contents) {
|
||||||
// regex extraction failed
|
// regex extraction failed
|
||||||
@ -209,100 +193,7 @@ class CaBundle
|
|||||||
*/
|
*/
|
||||||
public static function isOpensslParseSafe()
|
public static function isOpensslParseSafe()
|
||||||
{
|
{
|
||||||
if (null !== self::$useOpensslParse) {
|
return true;
|
||||||
return self::$useOpensslParse;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PHP_VERSION_ID >= 50600) {
|
|
||||||
return self::$useOpensslParse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vulnerable:
|
|
||||||
// PHP 5.3.0 - PHP 5.3.27
|
|
||||||
// PHP 5.4.0 - PHP 5.4.22
|
|
||||||
// PHP 5.5.0 - PHP 5.5.6
|
|
||||||
if (
|
|
||||||
(PHP_VERSION_ID < 50400 && PHP_VERSION_ID >= 50328)
|
|
||||||
|| (PHP_VERSION_ID < 50500 && PHP_VERSION_ID >= 50423)
|
|
||||||
|| PHP_VERSION_ID >= 50507
|
|
||||||
) {
|
|
||||||
// This version of PHP has the fix for CVE-2013-6420 applied.
|
|
||||||
return self::$useOpensslParse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
|
|
||||||
// Windows is probably insecure in this case.
|
|
||||||
return self::$useOpensslParse = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$compareDistroVersionPrefix = function ($prefix, $fixedVersion) {
|
|
||||||
$regex = '{^'.preg_quote($prefix).'([0-9]+)$}';
|
|
||||||
|
|
||||||
if (preg_match($regex, PHP_VERSION, $m)) {
|
|
||||||
return ((int) $m[1]) >= $fixedVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Hard coded list of PHP distributions with the fix backported.
|
|
||||||
if (
|
|
||||||
$compareDistroVersionPrefix('5.3.3-7+squeeze', 18) // Debian 6 (Squeeze)
|
|
||||||
|| $compareDistroVersionPrefix('5.4.4-14+deb7u', 7) // Debian 7 (Wheezy)
|
|
||||||
|| $compareDistroVersionPrefix('5.3.10-1ubuntu3.', 9) // Ubuntu 12.04 (Precise)
|
|
||||||
) {
|
|
||||||
return self::$useOpensslParse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Symfony Process component is missing so we assume it is unsafe at this point
|
|
||||||
if (!class_exists('Symfony\Component\Process\PhpProcess')) {
|
|
||||||
return self::$useOpensslParse = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is where things get crazy, because distros backport security
|
|
||||||
// fixes the chances are on NIX systems the fix has been applied but
|
|
||||||
// it's not possible to verify that from the PHP version.
|
|
||||||
//
|
|
||||||
// To verify exec a new PHP process and run the issue testcase with
|
|
||||||
// known safe input that replicates the bug.
|
|
||||||
|
|
||||||
// Based on testcase in https://github.com/php/php-src/commit/c1224573c773b6845e83505f717fbf820fc18415
|
|
||||||
// changes in https://github.com/php/php-src/commit/76a7fd893b7d6101300cc656058704a73254d593
|
|
||||||
$cert = 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVwRENDQTR5Z0F3SUJBZ0lKQUp6dThyNnU2ZUJjTUEwR0NTcUdTSWIzRFFFQkJRVUFNSUhETVFzd0NRWUQKVlFRR0V3SkVSVEVjTUJvR0ExVUVDQXdUVG05eVpISm9aV2x1TFZkbGMzUm1ZV3hsYmpFUU1BNEdBMVVFQnd3SApTOE9Ed3Jac2JqRVVNQklHQTFVRUNnd0xVMlZyZEdsdmJrVnBibk14SHpBZEJnTlZCQXNNRmsxaGJHbGphVzkxCmN5QkRaWEowSUZObFkzUnBiMjR4SVRBZkJnTlZCQU1NR0cxaGJHbGphVzkxY3k1elpXdDBhVzl1WldsdWN5NWsKWlRFcU1DZ0dDU3FHU0liM0RRRUpBUlliYzNSbFptRnVMbVZ6YzJWeVFITmxhM1JwYjI1bGFXNXpMbVJsTUhVWQpaREU1TnpBd01UQXhNREF3TURBd1dnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQVhEVEUwTVRFeU9ERXhNemt6TlZvd2djTXhDekFKQmdOVkJBWVRBa1JGTVJ3d0dnWURWUVFJREJOTwpiM0prY21obGFXNHRWMlZ6ZEdaaGJHVnVNUkF3RGdZRFZRUUhEQWRMdzRQQ3RteHVNUlF3RWdZRFZRUUtEQXRUClpXdDBhVzl1UldsdWN6RWZNQjBHQTFVRUN3d1dUV0ZzYVdOcGIzVnpJRU5sY25RZ1UyVmpkR2x2YmpFaE1COEcKQTFVRUF3d1liV0ZzYVdOcGIzVnpMbk5sYTNScGIyNWxhVzV6TG1SbE1Tb3dLQVlKS29aSWh2Y05BUWtCRmh0egpkR1ZtWVc0dVpYTnpaWEpBYzJWcmRHbHZibVZwYm5NdVpHVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRRERBZjNobDdKWTBYY0ZuaXlFSnBTU0RxbjBPcUJyNlFQNjV1c0pQUnQvOFBhRG9xQnUKd0VZVC9OYSs2ZnNnUGpDMHVLOURaZ1dnMnRIV1dvYW5TYmxBTW96NVBINlorUzRTSFJaN2UyZERJalBqZGhqaAowbUxnMlVNTzV5cDBWNzk3R2dzOWxOdDZKUmZIODFNTjJvYlhXczROdHp0TE11RDZlZ3FwcjhkRGJyMzRhT3M4CnBrZHVpNVVhd1Raa3N5NXBMUEhxNWNNaEZHbTA2djY1Q0xvMFYyUGQ5K0tBb2tQclBjTjVLTEtlYno3bUxwazYKU01lRVhPS1A0aWRFcXh5UTdPN2ZCdUhNZWRzUWh1K3ByWTNzaTNCVXlLZlF0UDVDWm5YMmJwMHdLSHhYMTJEWAoxbmZGSXQ5RGJHdkhUY3lPdU4rblpMUEJtM3ZXeG50eUlJdlZBZ01CQUFHalFqQkFNQWtHQTFVZEV3UUNNQUF3CkVRWUpZSVpJQVliNFFnRUJCQVFEQWdlQU1Bc0dBMVVkRHdRRUF3SUZvREFUQmdOVkhTVUVEREFLQmdnckJnRUYKQlFjREFqQU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUFHMGZaWVlDVGJkajFYWWMrMVNub2FQUit2SThDOENhRAo4KzBVWWhkbnlVNGdnYTBCQWNEclk5ZTk0ZUVBdTZacXljRjZGakxxWFhkQWJvcHBXb2NyNlQ2R0QxeDMzQ2tsClZBcnpHL0t4UW9oR0QySmVxa2hJTWxEb214SE83a2EzOStPYThpMnZXTFZ5alU4QVp2V01BcnVIYTRFRU55RzcKbFcyQWFnYUZLRkNyOVRuWFRmcmR4R1ZFYnY3S1ZRNmJkaGc1cDVTanBXSDErTXEwM3VSM1pYUEJZZHlWODMxOQpvMGxWajFLRkkyRENML2xpV2lzSlJvb2YrMWNSMzVDdGQwd1lCY3BCNlRac2xNY09QbDc2ZHdLd0pnZUpvMlFnClpzZm1jMnZDMS9xT2xOdU5xLzBUenprVkd2OEVUVDNDZ2FVK1VYZTRYT1Z2a2NjZWJKbjJkZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K';
|
|
||||||
$script = <<<'EOT'
|
|
||||||
|
|
||||||
error_reporting(-1);
|
|
||||||
$info = openssl_x509_parse(base64_decode('%s'));
|
|
||||||
var_dump(PHP_VERSION, $info['issuer']['emailAddress'], $info['validFrom_time_t']);
|
|
||||||
|
|
||||||
EOT;
|
|
||||||
$script = '<'."?php\n".sprintf($script, $cert);
|
|
||||||
|
|
||||||
try {
|
|
||||||
$process = new PhpProcess($script);
|
|
||||||
$process->mustRun();
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
// In the case of any exceptions just accept it is not possible to
|
|
||||||
// determine the safety of openssl_x509_parse and bail out.
|
|
||||||
return self::$useOpensslParse = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$output = preg_split('{\r?\n}', trim($process->getOutput()));
|
|
||||||
$errorOutput = trim($process->getErrorOutput());
|
|
||||||
|
|
||||||
if (
|
|
||||||
is_array($output)
|
|
||||||
&& count($output) === 3
|
|
||||||
&& $output[0] === sprintf('string(%d) "%s"', strlen(PHP_VERSION), PHP_VERSION)
|
|
||||||
&& $output[1] === 'string(27) "stefan.esser@sektioneins.de"'
|
|
||||||
&& $output[2] === 'int(-1)'
|
|
||||||
&& preg_match('{openssl_x509_parse\(\): illegal (?:ASN1 data type for|length in) timestamp in - on line \d+}', $errorOutput)
|
|
||||||
) {
|
|
||||||
// This PHP has the fix backported probably by a distro security team.
|
|
||||||
return self::$useOpensslParse = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return self::$useOpensslParse = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -313,7 +204,6 @@ EOT;
|
|||||||
{
|
{
|
||||||
self::$caFileValidity = array();
|
self::$caFileValidity = array();
|
||||||
self::$caPath = null;
|
self::$caPath = null;
|
||||||
self::$useOpensslParse = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -338,12 +228,12 @@ EOT;
|
|||||||
* @param LoggerInterface|null $logger
|
* @param LoggerInterface|null $logger
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private static function caFileUsable($certFile, LoggerInterface $logger = null)
|
private static function caFileUsable($certFile, ?LoggerInterface $logger = null)
|
||||||
{
|
{
|
||||||
return $certFile
|
return $certFile
|
||||||
&& static::isFile($certFile, $logger)
|
&& self::isFile($certFile, $logger)
|
||||||
&& static::isReadable($certFile, $logger)
|
&& self::isReadable($certFile, $logger)
|
||||||
&& static::validateCaFile($certFile, $logger);
|
&& self::validateCaFile($certFile, $logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -351,12 +241,12 @@ EOT;
|
|||||||
* @param LoggerInterface|null $logger
|
* @param LoggerInterface|null $logger
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private static function caDirUsable($certDir, LoggerInterface $logger = null)
|
private static function caDirUsable($certDir, ?LoggerInterface $logger = null)
|
||||||
{
|
{
|
||||||
return $certDir
|
return $certDir
|
||||||
&& static::isDir($certDir, $logger)
|
&& self::isDir($certDir, $logger)
|
||||||
&& static::isReadable($certDir, $logger)
|
&& self::isReadable($certDir, $logger)
|
||||||
&& static::glob($certDir . '/*', $logger);
|
&& self::glob($certDir . '/*', $logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -364,7 +254,7 @@ EOT;
|
|||||||
* @param LoggerInterface|null $logger
|
* @param LoggerInterface|null $logger
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private static function isFile($certFile, LoggerInterface $logger = null)
|
private static function isFile($certFile, ?LoggerInterface $logger = null)
|
||||||
{
|
{
|
||||||
$isFile = @is_file($certFile);
|
$isFile = @is_file($certFile);
|
||||||
if (!$isFile && $logger) {
|
if (!$isFile && $logger) {
|
||||||
@ -379,7 +269,7 @@ EOT;
|
|||||||
* @param LoggerInterface|null $logger
|
* @param LoggerInterface|null $logger
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private static function isDir($certDir, LoggerInterface $logger = null)
|
private static function isDir($certDir, ?LoggerInterface $logger = null)
|
||||||
{
|
{
|
||||||
$isDir = @is_dir($certDir);
|
$isDir = @is_dir($certDir);
|
||||||
if (!$isDir && $logger) {
|
if (!$isDir && $logger) {
|
||||||
@ -394,7 +284,7 @@ EOT;
|
|||||||
* @param LoggerInterface|null $logger
|
* @param LoggerInterface|null $logger
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private static function isReadable($certFileOrDir, LoggerInterface $logger = null)
|
private static function isReadable($certFileOrDir, ?LoggerInterface $logger = null)
|
||||||
{
|
{
|
||||||
$isReadable = @is_readable($certFileOrDir);
|
$isReadable = @is_readable($certFileOrDir);
|
||||||
if (!$isReadable && $logger) {
|
if (!$isReadable && $logger) {
|
||||||
@ -409,7 +299,7 @@ EOT;
|
|||||||
* @param LoggerInterface|null $logger
|
* @param LoggerInterface|null $logger
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private static function glob($pattern, LoggerInterface $logger = null)
|
private static function glob($pattern, ?LoggerInterface $logger = null)
|
||||||
{
|
{
|
||||||
$certs = glob($pattern);
|
$certs = glob($pattern);
|
||||||
if ($certs === false) {
|
if ($certs === false) {
|
||||||
|
26
includes/vendor/composer/installed.json
generated
vendored
26
includes/vendor/composer/installed.json
generated
vendored
@ -2,29 +2,29 @@
|
|||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "aura/sql",
|
"name": "aura/sql",
|
||||||
"version": "5.0.3",
|
"version": "6.0.0",
|
||||||
"version_normalized": "5.0.3.0",
|
"version_normalized": "6.0.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/auraphp/Aura.Sql.git",
|
"url": "https://github.com/auraphp/Aura.Sql.git",
|
||||||
"reference": "fd7a6dd1c9d2a1da5754c50f287f8be8a27db0e7"
|
"reference": "8e2bb362e8953198df3682c9122e8b9edab5ff20"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/auraphp/Aura.Sql/zipball/fd7a6dd1c9d2a1da5754c50f287f8be8a27db0e7",
|
"url": "https://api.github.com/repos/auraphp/Aura.Sql/zipball/8e2bb362e8953198df3682c9122e8b9edab5ff20",
|
||||||
"reference": "fd7a6dd1c9d2a1da5754c50f287f8be8a27db0e7",
|
"reference": "8e2bb362e8953198df3682c9122e8b9edab5ff20",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-pdo": "*",
|
"ext-pdo": "*",
|
||||||
"php": ">=8.1",
|
"php": "^8.4",
|
||||||
"psr/log": "^1.0 || ^2.0 || ^3.0"
|
"psr/log": "^1.0 || ^2.0 || ^3.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"pds/skeleton": "~1.0",
|
"pds/skeleton": "~1.0",
|
||||||
"phpunit/phpunit": "^9.5"
|
"phpunit/phpunit": "^9.5"
|
||||||
},
|
},
|
||||||
"time": "2025-01-22T06:39:17+00:00",
|
"time": "2025-01-22T06:43:21+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -57,7 +57,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/auraphp/Aura.Sql/issues",
|
"issues": "https://github.com/auraphp/Aura.Sql/issues",
|
||||||
"source": "https://github.com/auraphp/Aura.Sql/tree/5.0.3"
|
"source": "https://github.com/auraphp/Aura.Sql/tree/6.0.0"
|
||||||
},
|
},
|
||||||
"install-path": "../aura/sql"
|
"install-path": "../aura/sql"
|
||||||
},
|
},
|
||||||
@ -146,7 +146,7 @@
|
|||||||
"version_normalized": "2.13.0.0",
|
"version_normalized": "2.13.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git@github.com:maxmind/GeoIP2-php.git",
|
"url": "https://github.com/maxmind/GeoIP2-php.git",
|
||||||
"reference": "6a41d8fbd6b90052bc34dff3b4252d0f88067b23"
|
"reference": "6a41d8fbd6b90052bc34dff3b4252d0f88067b23"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
@ -195,6 +195,10 @@
|
|||||||
"geolocation",
|
"geolocation",
|
||||||
"maxmind"
|
"maxmind"
|
||||||
],
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/maxmind/GeoIP2-php/issues",
|
||||||
|
"source": "https://github.com/maxmind/GeoIP2-php/tree/v2.13.0"
|
||||||
|
},
|
||||||
"install-path": "../geoip2/geoip2"
|
"install-path": "../geoip2/geoip2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -231,6 +235,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Provides functionality for http_build_url() to environments without pecl_http.",
|
"description": "Provides functionality for http_build_url() to environments without pecl_http.",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/jakeasmith/http_build_url/issues",
|
||||||
|
"source": "https://github.com/jakeasmith/http_build_url"
|
||||||
|
},
|
||||||
"install-path": "../jakeasmith/http_build_url"
|
"install-path": "../jakeasmith/http_build_url"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
10
includes/vendor/composer/installed.php
generated
vendored
10
includes/vendor/composer/installed.php
generated
vendored
@ -3,7 +3,7 @@
|
|||||||
'name' => 'yourls/yourls',
|
'name' => 'yourls/yourls',
|
||||||
'pretty_version' => 'dev-master',
|
'pretty_version' => 'dev-master',
|
||||||
'version' => 'dev-master',
|
'version' => 'dev-master',
|
||||||
'reference' => '444ce1744bd8b83807d3e07ef1b84bdd50a7a1d8',
|
'reference' => '2af3c2bc8b959cb3c543d06bbfc80512c87eed22',
|
||||||
'type' => 'project',
|
'type' => 'project',
|
||||||
'install_path' => __DIR__ . '/../../../',
|
'install_path' => __DIR__ . '/../../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
@ -11,9 +11,9 @@
|
|||||||
),
|
),
|
||||||
'versions' => array(
|
'versions' => array(
|
||||||
'aura/sql' => array(
|
'aura/sql' => array(
|
||||||
'pretty_version' => '5.0.3',
|
'pretty_version' => '6.0.0',
|
||||||
'version' => '5.0.3.0',
|
'version' => '6.0.0.0',
|
||||||
'reference' => 'fd7a6dd1c9d2a1da5754c50f287f8be8a27db0e7',
|
'reference' => '8e2bb362e8953198df3682c9122e8b9edab5ff20',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../aura/sql',
|
'install_path' => __DIR__ . '/../aura/sql',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
@ -139,7 +139,7 @@
|
|||||||
'yourls/yourls' => array(
|
'yourls/yourls' => array(
|
||||||
'pretty_version' => 'dev-master',
|
'pretty_version' => 'dev-master',
|
||||||
'version' => 'dev-master',
|
'version' => 'dev-master',
|
||||||
'reference' => '444ce1744bd8b83807d3e07ef1b84bdd50a7a1d8',
|
'reference' => '2af3c2bc8b959cb3c543d06bbfc80512c87eed22',
|
||||||
'type' => 'project',
|
'type' => 'project',
|
||||||
'install_path' => __DIR__ . '/../../../',
|
'install_path' => __DIR__ . '/../../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
4
includes/vendor/maxmind-db/reader/README.md
generated
vendored
4
includes/vendor/maxmind-db/reader/README.md
generated
vendored
@ -132,7 +132,7 @@ make test
|
|||||||
sudo make install
|
sudo make install
|
||||||
```
|
```
|
||||||
|
|
||||||
You then must load your extension. The recommend method is to add the
|
You then must load your extension. The recommended method is to add the
|
||||||
following to your `php.ini` file:
|
following to your `php.ini` file:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -180,6 +180,6 @@ The MaxMind DB Reader PHP API uses [Semantic Versioning](https://semver.org/).
|
|||||||
|
|
||||||
## Copyright and License ##
|
## Copyright and License ##
|
||||||
|
|
||||||
This software is Copyright (c) 2014-2020 by MaxMind, Inc.
|
This software is Copyright (c) 2014-2024 by MaxMind, Inc.
|
||||||
|
|
||||||
This is free software, licensed under the Apache License, Version 2.0.
|
This is free software, licensed under the Apache License, Version 2.0.
|
||||||
|
135
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php
generated
vendored
135
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php
generated
vendored
@ -4,15 +4,10 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace MaxMind\Db;
|
namespace MaxMind\Db;
|
||||||
|
|
||||||
use ArgumentCountError;
|
|
||||||
use BadMethodCallException;
|
|
||||||
use Exception;
|
|
||||||
use InvalidArgumentException;
|
|
||||||
use MaxMind\Db\Reader\Decoder;
|
use MaxMind\Db\Reader\Decoder;
|
||||||
use MaxMind\Db\Reader\InvalidDatabaseException;
|
use MaxMind\Db\Reader\InvalidDatabaseException;
|
||||||
use MaxMind\Db\Reader\Metadata;
|
use MaxMind\Db\Reader\Metadata;
|
||||||
use MaxMind\Db\Reader\Util;
|
use MaxMind\Db\Reader\Util;
|
||||||
use UnexpectedValueException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instances of this class provide a reader for the MaxMind DB format. IP
|
* Instances of this class provide a reader for the MaxMind DB format. IP
|
||||||
@ -24,14 +19,17 @@ class Reader
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private static $DATA_SECTION_SEPARATOR_SIZE = 16;
|
private static $DATA_SECTION_SEPARATOR_SIZE = 16;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private static $METADATA_START_MARKER = "\xAB\xCD\xEFMaxMind.com";
|
private static $METADATA_START_MARKER = "\xAB\xCD\xEFMaxMind.com";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int<0, max>
|
||||||
*/
|
*/
|
||||||
private static $METADATA_START_MARKER_LENGTH = 14;
|
private static $METADATA_START_MARKER_LENGTH = 14;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
@ -41,18 +39,22 @@ class Reader
|
|||||||
* @var Decoder
|
* @var Decoder
|
||||||
*/
|
*/
|
||||||
private $decoder;
|
private $decoder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var resource
|
* @var resource
|
||||||
*/
|
*/
|
||||||
private $fileHandle;
|
private $fileHandle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $fileSize;
|
private $fileSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $ipV4Start;
|
private $ipV4Start;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Metadata
|
* @var Metadata
|
||||||
*/
|
*/
|
||||||
@ -62,25 +64,31 @@ class Reader
|
|||||||
* Constructs a Reader for the MaxMind DB format. The file passed to it must
|
* Constructs a Reader for the MaxMind DB format. The file passed to it must
|
||||||
* be a valid MaxMind DB file such as a GeoIp2 database file.
|
* be a valid MaxMind DB file such as a GeoIp2 database file.
|
||||||
*
|
*
|
||||||
* @param string $database
|
* @param string $database the MaxMind DB file to use
|
||||||
* the MaxMind DB file to use
|
|
||||||
*
|
*
|
||||||
* @throws InvalidArgumentException for invalid database path or unknown arguments
|
* @throws \InvalidArgumentException for invalid database path or unknown arguments
|
||||||
* @throws InvalidDatabaseException
|
* @throws InvalidDatabaseException
|
||||||
* if the database is invalid or there is an error reading
|
* if the database is invalid or there is an error reading
|
||||||
* from it
|
* from it
|
||||||
*/
|
*/
|
||||||
public function __construct(string $database)
|
public function __construct(string $database)
|
||||||
{
|
{
|
||||||
if (\func_num_args() !== 1) {
|
if (\func_num_args() !== 1) {
|
||||||
throw new ArgumentCountError(
|
throw new \ArgumentCountError(
|
||||||
sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args())
|
\sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_dir($database)) {
|
||||||
|
// This matches the error that the C extension throws.
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
"Error opening database file ($database). Is this a valid MaxMind DB file?"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$fileHandle = @fopen($database, 'rb');
|
$fileHandle = @fopen($database, 'rb');
|
||||||
if ($fileHandle === false) {
|
if ($fileHandle === false) {
|
||||||
throw new InvalidArgumentException(
|
throw new \InvalidArgumentException(
|
||||||
"The file \"$database\" does not exist or is not readable."
|
"The file \"$database\" does not exist or is not readable."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -88,7 +96,7 @@ class Reader
|
|||||||
|
|
||||||
$fileSize = @filesize($database);
|
$fileSize = @filesize($database);
|
||||||
if ($fileSize === false) {
|
if ($fileSize === false) {
|
||||||
throw new UnexpectedValueException(
|
throw new \UnexpectedValueException(
|
||||||
"Error determining the size of \"$database\"."
|
"Error determining the size of \"$database\"."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -108,22 +116,21 @@ class Reader
|
|||||||
/**
|
/**
|
||||||
* Retrieves the record for the IP address.
|
* Retrieves the record for the IP address.
|
||||||
*
|
*
|
||||||
* @param string $ipAddress
|
* @param string $ipAddress the IP address to look up
|
||||||
* the IP address to look up
|
|
||||||
*
|
*
|
||||||
* @throws BadMethodCallException if this method is called on a closed database
|
* @throws \BadMethodCallException if this method is called on a closed database
|
||||||
* @throws InvalidArgumentException if something other than a single IP address is passed to the method
|
* @throws \InvalidArgumentException if something other than a single IP address is passed to the method
|
||||||
* @throws InvalidDatabaseException
|
* @throws InvalidDatabaseException
|
||||||
* if the database is invalid or there is an error reading
|
* if the database is invalid or there is an error reading
|
||||||
* from it
|
* from it
|
||||||
*
|
*
|
||||||
* @return mixed the record for the IP address
|
* @return mixed the record for the IP address
|
||||||
*/
|
*/
|
||||||
public function get(string $ipAddress)
|
public function get(string $ipAddress)
|
||||||
{
|
{
|
||||||
if (\func_num_args() !== 1) {
|
if (\func_num_args() !== 1) {
|
||||||
throw new ArgumentCountError(
|
throw new \ArgumentCountError(
|
||||||
sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args())
|
\sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
[$record] = $this->getWithPrefixLen($ipAddress);
|
[$record] = $this->getWithPrefixLen($ipAddress);
|
||||||
@ -134,28 +141,27 @@ class Reader
|
|||||||
/**
|
/**
|
||||||
* Retrieves the record for the IP address and its associated network prefix length.
|
* Retrieves the record for the IP address and its associated network prefix length.
|
||||||
*
|
*
|
||||||
* @param string $ipAddress
|
* @param string $ipAddress the IP address to look up
|
||||||
* the IP address to look up
|
|
||||||
*
|
*
|
||||||
* @throws BadMethodCallException if this method is called on a closed database
|
* @throws \BadMethodCallException if this method is called on a closed database
|
||||||
* @throws InvalidArgumentException if something other than a single IP address is passed to the method
|
* @throws \InvalidArgumentException if something other than a single IP address is passed to the method
|
||||||
* @throws InvalidDatabaseException
|
* @throws InvalidDatabaseException
|
||||||
* if the database is invalid or there is an error reading
|
* if the database is invalid or there is an error reading
|
||||||
* from it
|
* from it
|
||||||
*
|
*
|
||||||
* @return array an array where the first element is the record and the
|
* @return array{0:mixed, 1:int} an array where the first element is the record and the
|
||||||
* second the network prefix length for the record
|
* second the network prefix length for the record
|
||||||
*/
|
*/
|
||||||
public function getWithPrefixLen(string $ipAddress): array
|
public function getWithPrefixLen(string $ipAddress): array
|
||||||
{
|
{
|
||||||
if (\func_num_args() !== 1) {
|
if (\func_num_args() !== 1) {
|
||||||
throw new ArgumentCountError(
|
throw new \ArgumentCountError(
|
||||||
sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args())
|
\sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!\is_resource($this->fileHandle)) {
|
if (!\is_resource($this->fileHandle)) {
|
||||||
throw new BadMethodCallException(
|
throw new \BadMethodCallException(
|
||||||
'Attempt to read from a closed MaxMind DB.'
|
'Attempt to read from a closed MaxMind DB.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -168,16 +174,24 @@ class Reader
|
|||||||
return [$this->resolveDataPointer($pointer), $prefixLen];
|
return [$this->resolveDataPointer($pointer), $prefixLen];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{0:int, 1:int}
|
||||||
|
*/
|
||||||
private function findAddressInTree(string $ipAddress): array
|
private function findAddressInTree(string $ipAddress): array
|
||||||
{
|
{
|
||||||
$packedAddr = @inet_pton($ipAddress);
|
$packedAddr = @inet_pton($ipAddress);
|
||||||
if ($packedAddr === false) {
|
if ($packedAddr === false) {
|
||||||
throw new InvalidArgumentException(
|
throw new \InvalidArgumentException(
|
||||||
"The value \"$ipAddress\" is not a valid IP address."
|
"The value \"$ipAddress\" is not a valid IP address."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$rawAddress = unpack('C*', $packedAddr);
|
$rawAddress = unpack('C*', $packedAddr);
|
||||||
|
if ($rawAddress === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack the unsigned char of the packed in_addr representation.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$bitCount = \count($rawAddress) * 8;
|
$bitCount = \count($rawAddress) * 8;
|
||||||
|
|
||||||
@ -194,7 +208,7 @@ class Reader
|
|||||||
$node = $this->ipV4Start;
|
$node = $this->ipV4Start;
|
||||||
}
|
}
|
||||||
} elseif ($metadata->ipVersion === 4 && $bitCount === 128) {
|
} elseif ($metadata->ipVersion === 4 && $bitCount === 128) {
|
||||||
throw new InvalidArgumentException(
|
throw new \InvalidArgumentException(
|
||||||
"Error looking up $ipAddress. You attempted to look up an"
|
"Error looking up $ipAddress. You attempted to look up an"
|
||||||
. ' IPv6 address in an IPv4-only database.'
|
. ' IPv6 address in an IPv4-only database.'
|
||||||
);
|
);
|
||||||
@ -245,7 +259,13 @@ class Reader
|
|||||||
switch ($this->metadata->recordSize) {
|
switch ($this->metadata->recordSize) {
|
||||||
case 24:
|
case 24:
|
||||||
$bytes = Util::read($this->fileHandle, $baseOffset + $index * 3, 3);
|
$bytes = Util::read($this->fileHandle, $baseOffset + $index * 3, 3);
|
||||||
[, $node] = unpack('N', "\x00" . $bytes);
|
$rc = unpack('N', "\x00" . $bytes);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack the unsigned long of the node.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $node] = $rc;
|
||||||
|
|
||||||
return $node;
|
return $node;
|
||||||
|
|
||||||
@ -256,13 +276,25 @@ class Reader
|
|||||||
} else {
|
} else {
|
||||||
$middle = 0x0F & \ord($bytes[0]);
|
$middle = 0x0F & \ord($bytes[0]);
|
||||||
}
|
}
|
||||||
[, $node] = unpack('N', \chr($middle) . substr($bytes, $index, 3));
|
$rc = unpack('N', \chr($middle) . substr($bytes, $index, 3));
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack the unsigned long of the node.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $node] = $rc;
|
||||||
|
|
||||||
return $node;
|
return $node;
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
$bytes = Util::read($this->fileHandle, $baseOffset + $index * 4, 4);
|
$bytes = Util::read($this->fileHandle, $baseOffset + $index * 4, 4);
|
||||||
[, $node] = unpack('N', $bytes);
|
$rc = unpack('N', $bytes);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack the unsigned long of the node.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $node] = $rc;
|
||||||
|
|
||||||
return $node;
|
return $node;
|
||||||
|
|
||||||
@ -301,6 +333,11 @@ class Reader
|
|||||||
{
|
{
|
||||||
$handle = $this->fileHandle;
|
$handle = $this->fileHandle;
|
||||||
$fstat = fstat($handle);
|
$fstat = fstat($handle);
|
||||||
|
if ($fstat === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
"Error getting file information ($filename)."
|
||||||
|
);
|
||||||
|
}
|
||||||
$fileSize = $fstat['size'];
|
$fileSize = $fstat['size'];
|
||||||
$marker = self::$METADATA_START_MARKER;
|
$marker = self::$METADATA_START_MARKER;
|
||||||
$markerLength = self::$METADATA_START_MARKER_LENGTH;
|
$markerLength = self::$METADATA_START_MARKER_LENGTH;
|
||||||
@ -325,23 +362,23 @@ class Reader
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws InvalidArgumentException if arguments are passed to the method
|
* @throws \InvalidArgumentException if arguments are passed to the method
|
||||||
* @throws BadMethodCallException if the database has been closed
|
* @throws \BadMethodCallException if the database has been closed
|
||||||
*
|
*
|
||||||
* @return Metadata object for the database
|
* @return Metadata object for the database
|
||||||
*/
|
*/
|
||||||
public function metadata(): Metadata
|
public function metadata(): Metadata
|
||||||
{
|
{
|
||||||
if (\func_num_args()) {
|
if (\func_num_args()) {
|
||||||
throw new ArgumentCountError(
|
throw new \ArgumentCountError(
|
||||||
sprintf('%s() expects exactly 0 parameters, %d given', __METHOD__, \func_num_args())
|
\sprintf('%s() expects exactly 0 parameters, %d given', __METHOD__, \func_num_args())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not technically required, but this makes it consistent with
|
// Not technically required, but this makes it consistent with
|
||||||
// C extension and it allows us to change our implementation later.
|
// C extension and it allows us to change our implementation later.
|
||||||
if (!\is_resource($this->fileHandle)) {
|
if (!\is_resource($this->fileHandle)) {
|
||||||
throw new BadMethodCallException(
|
throw new \BadMethodCallException(
|
||||||
'Attempt to read from a closed MaxMind DB.'
|
'Attempt to read from a closed MaxMind DB.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -352,19 +389,19 @@ class Reader
|
|||||||
/**
|
/**
|
||||||
* Closes the MaxMind DB and returns resources to the system.
|
* Closes the MaxMind DB and returns resources to the system.
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws \Exception
|
||||||
* if an I/O error occurs
|
* if an I/O error occurs
|
||||||
*/
|
*/
|
||||||
public function close(): void
|
public function close(): void
|
||||||
{
|
{
|
||||||
if (\func_num_args()) {
|
if (\func_num_args()) {
|
||||||
throw new ArgumentCountError(
|
throw new \ArgumentCountError(
|
||||||
sprintf('%s() expects exactly 0 parameters, %d given', __METHOD__, \func_num_args())
|
\sprintf('%s() expects exactly 0 parameters, %d given', __METHOD__, \func_num_args())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!\is_resource($this->fileHandle)) {
|
if (!\is_resource($this->fileHandle)) {
|
||||||
throw new BadMethodCallException(
|
throw new \BadMethodCallException(
|
||||||
'Attempt to close a closed MaxMind DB.'
|
'Attempt to close a closed MaxMind DB.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
136
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php
generated
vendored
136
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php
generated
vendored
@ -5,7 +5,6 @@ declare(strict_types=1);
|
|||||||
namespace MaxMind\Db\Reader;
|
namespace MaxMind\Db\Reader;
|
||||||
|
|
||||||
// @codingStandardsIgnoreLine
|
// @codingStandardsIgnoreLine
|
||||||
use RuntimeException;
|
|
||||||
|
|
||||||
class Decoder
|
class Decoder
|
||||||
{
|
{
|
||||||
@ -13,20 +12,19 @@ class Decoder
|
|||||||
* @var resource
|
* @var resource
|
||||||
*/
|
*/
|
||||||
private $fileStream;
|
private $fileStream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $pointerBase;
|
private $pointerBase;
|
||||||
/**
|
|
||||||
* @var float
|
|
||||||
*/
|
|
||||||
private $pointerBaseByteSize;
|
|
||||||
/**
|
/**
|
||||||
* This is only used for unit testing.
|
* This is only used for unit testing.
|
||||||
*
|
*
|
||||||
* @var bool
|
* @var bool
|
||||||
*/
|
*/
|
||||||
private $pointerTestHack;
|
private $pointerTestHack;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var bool
|
* @var bool
|
||||||
*/
|
*/
|
||||||
@ -44,8 +42,8 @@ class Decoder
|
|||||||
private const _UINT64 = 9;
|
private const _UINT64 = 9;
|
||||||
private const _UINT128 = 10;
|
private const _UINT128 = 10;
|
||||||
private const _ARRAY = 11;
|
private const _ARRAY = 11;
|
||||||
private const _CONTAINER = 12;
|
// 12 is the container type
|
||||||
private const _END_MARKER = 13;
|
// 13 is the end marker type
|
||||||
private const _BOOLEAN = 14;
|
private const _BOOLEAN = 14;
|
||||||
private const _FLOAT = 15;
|
private const _FLOAT = 15;
|
||||||
|
|
||||||
@ -60,12 +58,14 @@ class Decoder
|
|||||||
$this->fileStream = $fileStream;
|
$this->fileStream = $fileStream;
|
||||||
$this->pointerBase = $pointerBase;
|
$this->pointerBase = $pointerBase;
|
||||||
|
|
||||||
$this->pointerBaseByteSize = $pointerBase > 0 ? log($pointerBase, 2) / 8 : 0;
|
|
||||||
$this->pointerTestHack = $pointerTestHack;
|
$this->pointerTestHack = $pointerTestHack;
|
||||||
|
|
||||||
$this->switchByteOrder = $this->isPlatformLittleEndian();
|
$this->switchByteOrder = $this->isPlatformLittleEndian();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<mixed>
|
||||||
|
*/
|
||||||
public function decode(int $offset): array
|
public function decode(int $offset): array
|
||||||
{
|
{
|
||||||
$ctrlByte = \ord(Util::read($this->fileStream, $offset, 1));
|
$ctrlByte = \ord(Util::read($this->fileStream, $offset, 1));
|
||||||
@ -111,6 +111,11 @@ class Decoder
|
|||||||
return $this->decodeByType($type, $offset, $size);
|
return $this->decodeByType($type, $offset, $size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int<0, max> $size
|
||||||
|
*
|
||||||
|
* @return array{0:mixed, 1:int}
|
||||||
|
*/
|
||||||
private function decodeByType(int $type, int $offset, int $size): array
|
private function decodeByType(int $type, int $offset, int $size): array
|
||||||
{
|
{
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
@ -167,6 +172,9 @@ class Decoder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{0:array<mixed>, 1:int}
|
||||||
|
*/
|
||||||
private function decodeArray(int $size, int $offset): array
|
private function decodeArray(int $size, int $offset): array
|
||||||
{
|
{
|
||||||
$array = [];
|
$array = [];
|
||||||
@ -188,7 +196,13 @@ class Decoder
|
|||||||
{
|
{
|
||||||
// This assumes IEEE 754 doubles, but most (all?) modern platforms
|
// This assumes IEEE 754 doubles, but most (all?) modern platforms
|
||||||
// use them.
|
// use them.
|
||||||
[, $double] = unpack('E', $bytes);
|
$rc = unpack('E', $bytes);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack a double value from the given bytes.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $double] = $rc;
|
||||||
|
|
||||||
return $double;
|
return $double;
|
||||||
}
|
}
|
||||||
@ -197,7 +211,13 @@ class Decoder
|
|||||||
{
|
{
|
||||||
// This assumes IEEE 754 floats, but most (all?) modern platforms
|
// This assumes IEEE 754 floats, but most (all?) modern platforms
|
||||||
// use them.
|
// use them.
|
||||||
[, $float] = unpack('G', $bytes);
|
$rc = unpack('G', $bytes);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack a float value from the given bytes.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $float] = $rc;
|
||||||
|
|
||||||
return $float;
|
return $float;
|
||||||
}
|
}
|
||||||
@ -224,11 +244,20 @@ class Decoder
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
[, $int] = unpack('l', $this->maybeSwitchByteOrder($bytes));
|
$rc = unpack('l', $this->maybeSwitchByteOrder($bytes));
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack a 32bit integer value from the given bytes.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $int] = $rc;
|
||||||
|
|
||||||
return $int;
|
return $int;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{0:array<string, mixed>, 1:int}
|
||||||
|
*/
|
||||||
private function decodeMap(int $size, int $offset): array
|
private function decodeMap(int $size, int $offset): array
|
||||||
{
|
{
|
||||||
$map = [];
|
$map = [];
|
||||||
@ -242,24 +271,39 @@ class Decoder
|
|||||||
return [$map, $offset];
|
return [$map, $offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{0:int, 1:int}
|
||||||
|
*/
|
||||||
private function decodePointer(int $ctrlByte, int $offset): array
|
private function decodePointer(int $ctrlByte, int $offset): array
|
||||||
{
|
{
|
||||||
$pointerSize = (($ctrlByte >> 3) & 0x3) + 1;
|
$pointerSize = (($ctrlByte >> 3) & 0x3) + 1;
|
||||||
|
|
||||||
$buffer = Util::read($this->fileStream, $offset, $pointerSize);
|
$buffer = Util::read($this->fileStream, $offset, $pointerSize);
|
||||||
$offset = $offset + $pointerSize;
|
$offset += $pointerSize;
|
||||||
|
|
||||||
switch ($pointerSize) {
|
switch ($pointerSize) {
|
||||||
case 1:
|
case 1:
|
||||||
$packed = \chr($ctrlByte & 0x7) . $buffer;
|
$packed = \chr($ctrlByte & 0x7) . $buffer;
|
||||||
[, $pointer] = unpack('n', $packed);
|
$rc = unpack('n', $packed);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack an unsigned short value from the given bytes (pointerSize is 1).'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $pointer] = $rc;
|
||||||
$pointer += $this->pointerBase;
|
$pointer += $this->pointerBase;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
$packed = "\x00" . \chr($ctrlByte & 0x7) . $buffer;
|
$packed = "\x00" . \chr($ctrlByte & 0x7) . $buffer;
|
||||||
[, $pointer] = unpack('N', $packed);
|
$rc = unpack('N', $packed);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack an unsigned long value from the given bytes (pointerSize is 2).'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $pointer] = $rc;
|
||||||
$pointer += $this->pointerBase + 2048;
|
$pointer += $this->pointerBase + 2048;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -269,7 +313,13 @@ class Decoder
|
|||||||
|
|
||||||
// It is safe to use 'N' here, even on 32 bit machines as the
|
// It is safe to use 'N' here, even on 32 bit machines as the
|
||||||
// first bit is 0.
|
// first bit is 0.
|
||||||
[, $pointer] = unpack('N', $packed);
|
$rc = unpack('N', $packed);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack an unsigned long value from the given bytes (pointerSize is 3).'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $pointer] = $rc;
|
||||||
$pointer += $this->pointerBase + 526336;
|
$pointer += $this->pointerBase + 526336;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -284,7 +334,7 @@ class Decoder
|
|||||||
if (\PHP_INT_MAX - $pointerBase >= $pointerOffset) {
|
if (\PHP_INT_MAX - $pointerBase >= $pointerOffset) {
|
||||||
$pointer = $pointerOffset + $pointerBase;
|
$pointer = $pointerOffset + $pointerBase;
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException(
|
throw new \RuntimeException(
|
||||||
'The database offset is too large to be represented on your platform.'
|
'The database offset is too large to be represented on your platform.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -307,34 +357,44 @@ class Decoder
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$integer = 0;
|
|
||||||
|
|
||||||
// PHP integers are signed. PHP_INT_SIZE - 1 is the number of
|
// PHP integers are signed. PHP_INT_SIZE - 1 is the number of
|
||||||
// complete bytes that can be converted to an integer. However,
|
// complete bytes that can be converted to an integer. However,
|
||||||
// we can convert another byte if the leading bit is zero.
|
// we can convert another byte if the leading bit is zero.
|
||||||
$useRealInts = $byteLength <= \PHP_INT_SIZE - 1
|
$useRealInts = $byteLength <= \PHP_INT_SIZE - 1
|
||||||
|| ($byteLength === \PHP_INT_SIZE && (\ord($bytes[0]) & 0x80) === 0);
|
|| ($byteLength === \PHP_INT_SIZE && (\ord($bytes[0]) & 0x80) === 0);
|
||||||
|
|
||||||
|
if ($useRealInts) {
|
||||||
|
$integer = 0;
|
||||||
|
for ($i = 0; $i < $byteLength; ++$i) {
|
||||||
|
$part = \ord($bytes[$i]);
|
||||||
|
$integer = ($integer << 8) + $part;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $integer;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We only use gmp or bcmath if the final value is too big
|
||||||
|
$integerAsString = '0';
|
||||||
for ($i = 0; $i < $byteLength; ++$i) {
|
for ($i = 0; $i < $byteLength; ++$i) {
|
||||||
$part = \ord($bytes[$i]);
|
$part = \ord($bytes[$i]);
|
||||||
|
|
||||||
// We only use gmp or bcmath if the final value is too big
|
if (\extension_loaded('gmp')) {
|
||||||
if ($useRealInts) {
|
$integerAsString = gmp_strval(gmp_add(gmp_mul($integerAsString, '256'), $part));
|
||||||
$integer = ($integer << 8) + $part;
|
|
||||||
} elseif (\extension_loaded('gmp')) {
|
|
||||||
$integer = gmp_strval(gmp_add(gmp_mul((string) $integer, '256'), $part));
|
|
||||||
} elseif (\extension_loaded('bcmath')) {
|
} elseif (\extension_loaded('bcmath')) {
|
||||||
$integer = bcadd(bcmul((string) $integer, '256'), (string) $part);
|
$integerAsString = bcadd(bcmul($integerAsString, '256'), (string) $part);
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException(
|
throw new \RuntimeException(
|
||||||
'The gmp or bcmath extension must be installed to read this database.'
|
'The gmp or bcmath extension must be installed to read this database.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $integer;
|
return $integerAsString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{0:int, 1:int}
|
||||||
|
*/
|
||||||
private function sizeFromCtrlByte(int $ctrlByte, int $offset): array
|
private function sizeFromCtrlByte(int $ctrlByte, int $offset): array
|
||||||
{
|
{
|
||||||
$size = $ctrlByte & 0x1F;
|
$size = $ctrlByte & 0x1F;
|
||||||
@ -349,10 +409,22 @@ class Decoder
|
|||||||
if ($size === 29) {
|
if ($size === 29) {
|
||||||
$size = 29 + \ord($bytes);
|
$size = 29 + \ord($bytes);
|
||||||
} elseif ($size === 30) {
|
} elseif ($size === 30) {
|
||||||
[, $adjust] = unpack('n', $bytes);
|
$rc = unpack('n', $bytes);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack an unsigned short value from the given bytes.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $adjust] = $rc;
|
||||||
$size = 285 + $adjust;
|
$size = 285 + $adjust;
|
||||||
} else {
|
} else {
|
||||||
[, $adjust] = unpack('N', "\x00" . $bytes);
|
$rc = unpack('N', "\x00" . $bytes);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack an unsigned long value from the given bytes.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
[, $adjust] = $rc;
|
||||||
$size = $adjust + 65821;
|
$size = $adjust + 65821;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,7 +440,13 @@ class Decoder
|
|||||||
{
|
{
|
||||||
$testint = 0x00FF;
|
$testint = 0x00FF;
|
||||||
$packed = pack('S', $testint);
|
$packed = pack('S', $testint);
|
||||||
|
$rc = unpack('v', $packed);
|
||||||
|
if ($rc === false) {
|
||||||
|
throw new InvalidDatabaseException(
|
||||||
|
'Could not unpack an unsigned short value from the given bytes.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return $testint === current(unpack('v', $packed));
|
return $testint === current($rc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
7
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php
generated
vendored
7
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php
generated
vendored
@ -4,11 +4,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace MaxMind\Db\Reader;
|
namespace MaxMind\Db\Reader;
|
||||||
|
|
||||||
use Exception;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class should be thrown when unexpected data is found in the database.
|
* This class should be thrown when unexpected data is found in the database.
|
||||||
*/
|
*/
|
||||||
class InvalidDatabaseException extends Exception
|
// phpcs:disable
|
||||||
{
|
class InvalidDatabaseException extends \Exception {}
|
||||||
}
|
|
||||||
|
23
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Metadata.php
generated
vendored
23
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Metadata.php
generated
vendored
@ -4,8 +4,6 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace MaxMind\Db\Reader;
|
namespace MaxMind\Db\Reader;
|
||||||
|
|
||||||
use ArgumentCountError;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class provides the metadata for the MaxMind DB file.
|
* This class provides the metadata for the MaxMind DB file.
|
||||||
*/
|
*/
|
||||||
@ -18,6 +16,7 @@ class Metadata
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $binaryFormatMajorVersion;
|
public $binaryFormatMajorVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an unsigned 16-bit integer indicating the minor version number
|
* This is an unsigned 16-bit integer indicating the minor version number
|
||||||
* for the database's binary format.
|
* for the database's binary format.
|
||||||
@ -25,6 +24,7 @@ class Metadata
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $binaryFormatMinorVersion;
|
public $binaryFormatMinorVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an unsigned 64-bit integer that contains the database build
|
* This is an unsigned 64-bit integer that contains the database build
|
||||||
* timestamp as a Unix epoch value.
|
* timestamp as a Unix epoch value.
|
||||||
@ -32,6 +32,7 @@ class Metadata
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $buildEpoch;
|
public $buildEpoch;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is a string that indicates the structure of each data record
|
* This is a string that indicates the structure of each data record
|
||||||
* associated with an IP address. The actual definition of these
|
* associated with an IP address. The actual definition of these
|
||||||
@ -40,15 +41,17 @@ class Metadata
|
|||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public $databaseType;
|
public $databaseType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This key will always point to a map (associative array). The keys of
|
* This key will always point to a map (associative array). The keys of
|
||||||
* that map will be language codes, and the values will be a description
|
* that map will be language codes, and the values will be a description
|
||||||
* in that language as a UTF-8 string. May be undefined for some
|
* in that language as a UTF-8 string. May be undefined for some
|
||||||
* databases.
|
* databases.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array<string, string>
|
||||||
*/
|
*/
|
||||||
public $description;
|
public $description;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an unsigned 16-bit integer which is always 4 or 6. It indicates
|
* This is an unsigned 16-bit integer which is always 4 or 6. It indicates
|
||||||
* whether the database contains IPv4 or IPv6 address data.
|
* whether the database contains IPv4 or IPv6 address data.
|
||||||
@ -56,18 +59,21 @@ class Metadata
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $ipVersion;
|
public $ipVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An array of strings, each of which is a language code. A given record
|
* An array of strings, each of which is a language code. A given record
|
||||||
* may contain data items that have been localized to some or all of
|
* may contain data items that have been localized to some or all of
|
||||||
* these languages. This may be undefined.
|
* these languages. This may be undefined.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array<string>
|
||||||
*/
|
*/
|
||||||
public $languages;
|
public $languages;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $nodeByteSize;
|
public $nodeByteSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an unsigned 32-bit integer indicating the number of nodes in
|
* This is an unsigned 32-bit integer indicating the number of nodes in
|
||||||
* the search tree.
|
* the search tree.
|
||||||
@ -75,6 +81,7 @@ class Metadata
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $nodeCount;
|
public $nodeCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an unsigned 16-bit integer. It indicates the number of bits in a
|
* This is an unsigned 16-bit integer. It indicates the number of bits in a
|
||||||
* record in the search tree. Note that each node consists of two records.
|
* record in the search tree. Note that each node consists of two records.
|
||||||
@ -82,16 +89,20 @@ class Metadata
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $recordSize;
|
public $recordSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $searchTreeSize;
|
public $searchTreeSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<string, mixed> $metadata
|
||||||
|
*/
|
||||||
public function __construct(array $metadata)
|
public function __construct(array $metadata)
|
||||||
{
|
{
|
||||||
if (\func_num_args() !== 1) {
|
if (\func_num_args() !== 1) {
|
||||||
throw new ArgumentCountError(
|
throw new \ArgumentCountError(
|
||||||
sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args())
|
\sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
3
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php
generated
vendored
3
includes/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php
generated
vendored
@ -7,7 +7,8 @@ namespace MaxMind\Db\Reader;
|
|||||||
class Util
|
class Util
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param resource $stream
|
* @param resource $stream
|
||||||
|
* @param int<0, max> $numberOfBytes
|
||||||
*/
|
*/
|
||||||
public static function read($stream, int $offset, int $numberOfBytes): string
|
public static function read($stream, int $offset, int $numberOfBytes): string
|
||||||
{
|
{
|
||||||
|
6
includes/vendor/maxmind/web-service-common/README.md
generated
vendored
6
includes/vendor/maxmind/web-service-common/README.md
generated
vendored
@ -5,7 +5,7 @@ shared code between MaxMind's various web service client APIs.
|
|||||||
|
|
||||||
## Requirements ##
|
## Requirements ##
|
||||||
|
|
||||||
The library requires PHP 7.2 or greater.
|
The library requires PHP 8.1 or greater.
|
||||||
|
|
||||||
There are several other dependencies as defined in the `composer.json` file.
|
There are several other dependencies as defined in the `composer.json` file.
|
||||||
|
|
||||||
@ -16,10 +16,10 @@ style guidelines. Please include unit tests whenever possible.
|
|||||||
|
|
||||||
## Versioning ##
|
## Versioning ##
|
||||||
|
|
||||||
This API uses [Semantic Versioning](http://semver.org/).
|
This API uses [Semantic Versioning](https://semver.org/).
|
||||||
|
|
||||||
## Copyright and License ##
|
## Copyright and License ##
|
||||||
|
|
||||||
This software is Copyright (c) 2015-2020 by MaxMind, Inc.
|
This software is Copyright (c) 2015-2024 by MaxMind, Inc.
|
||||||
|
|
||||||
This is free software, licensed under the Apache License, Version 2.0.
|
This is free software, licensed under the Apache License, Version 2.0.
|
||||||
|
5
includes/vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php
generated
vendored
5
includes/vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php
generated
vendored
@ -7,6 +7,5 @@ namespace MaxMind\Exception;
|
|||||||
/**
|
/**
|
||||||
* This class represents an error authenticating.
|
* This class represents an error authenticating.
|
||||||
*/
|
*/
|
||||||
class AuthenticationException extends InvalidRequestException
|
// phpcs:disable
|
||||||
{
|
class AuthenticationException extends InvalidRequestException {}
|
||||||
}
|
|
||||||
|
2
includes/vendor/maxmind/web-service-common/src/Exception/HttpException.php
generated
vendored
2
includes/vendor/maxmind/web-service-common/src/Exception/HttpException.php
generated
vendored
@ -26,7 +26,7 @@ class HttpException extends WebServiceException
|
|||||||
string $message,
|
string $message,
|
||||||
int $httpStatus,
|
int $httpStatus,
|
||||||
string $uri,
|
string $uri,
|
||||||
\Exception $previous = null
|
?\Exception $previous = null
|
||||||
) {
|
) {
|
||||||
$this->uri = $uri;
|
$this->uri = $uri;
|
||||||
parent::__construct($message, $httpStatus, $previous);
|
parent::__construct($message, $httpStatus, $previous);
|
||||||
|
@ -7,6 +7,5 @@ namespace MaxMind\Exception;
|
|||||||
/**
|
/**
|
||||||
* Thrown when the account is out of credits.
|
* Thrown when the account is out of credits.
|
||||||
*/
|
*/
|
||||||
class InsufficientFundsException extends InvalidRequestException
|
// phpcs:disable
|
||||||
{
|
class InsufficientFundsException extends InvalidRequestException {}
|
||||||
}
|
|
||||||
|
5
includes/vendor/maxmind/web-service-common/src/Exception/InvalidInputException.php
generated
vendored
5
includes/vendor/maxmind/web-service-common/src/Exception/InvalidInputException.php
generated
vendored
@ -9,6 +9,5 @@ namespace MaxMind\Exception;
|
|||||||
* web service. For example, if the array cannot be encoded as JSON or if there
|
* web service. For example, if the array cannot be encoded as JSON or if there
|
||||||
* is a missing or invalid field.
|
* is a missing or invalid field.
|
||||||
*/
|
*/
|
||||||
class InvalidInputException extends WebServiceException
|
// phpcs:disable
|
||||||
{
|
class InvalidInputException extends WebServiceException {}
|
||||||
}
|
|
||||||
|
2
includes/vendor/maxmind/web-service-common/src/Exception/InvalidRequestException.php
generated
vendored
2
includes/vendor/maxmind/web-service-common/src/Exception/InvalidRequestException.php
generated
vendored
@ -28,7 +28,7 @@ class InvalidRequestException extends HttpException
|
|||||||
string $error,
|
string $error,
|
||||||
int $httpStatus,
|
int $httpStatus,
|
||||||
string $uri,
|
string $uri,
|
||||||
\Exception $previous = null
|
?\Exception $previous = null
|
||||||
) {
|
) {
|
||||||
$this->error = $error;
|
$this->error = $error;
|
||||||
parent::__construct($message, $httpStatus, $uri, $previous);
|
parent::__construct($message, $httpStatus, $uri, $previous);
|
||||||
|
@ -4,6 +4,5 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace MaxMind\Exception;
|
namespace MaxMind\Exception;
|
||||||
|
|
||||||
class IpAddressNotFoundException extends InvalidRequestException
|
// phpcs:disable
|
||||||
{
|
class IpAddressNotFoundException extends InvalidRequestException {}
|
||||||
}
|
|
||||||
|
@ -7,6 +7,5 @@ namespace MaxMind\Exception;
|
|||||||
/**
|
/**
|
||||||
* This exception is thrown when the service requires permission to access.
|
* This exception is thrown when the service requires permission to access.
|
||||||
*/
|
*/
|
||||||
class PermissionRequiredException extends InvalidRequestException
|
// phpcs:disable
|
||||||
{
|
class PermissionRequiredException extends InvalidRequestException {}
|
||||||
}
|
|
||||||
|
5
includes/vendor/maxmind/web-service-common/src/Exception/WebServiceException.php
generated
vendored
5
includes/vendor/maxmind/web-service-common/src/Exception/WebServiceException.php
generated
vendored
@ -7,6 +7,5 @@ namespace MaxMind\Exception;
|
|||||||
/**
|
/**
|
||||||
* This class represents a generic web service error.
|
* This class represents a generic web service error.
|
||||||
*/
|
*/
|
||||||
class WebServiceException extends \Exception
|
// phpcs:disable
|
||||||
{
|
class WebServiceException extends \Exception {}
|
||||||
}
|
|
||||||
|
40
includes/vendor/maxmind/web-service-common/src/WebService/Client.php
generated
vendored
40
includes/vendor/maxmind/web-service-common/src/WebService/Client.php
generated
vendored
@ -77,17 +77,17 @@ class Client
|
|||||||
private $accountId;
|
private $accountId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $accountId your MaxMind account ID
|
* @param int $accountId your MaxMind account ID
|
||||||
* @param string $licenseKey your MaxMind license key
|
* @param string $licenseKey your MaxMind license key
|
||||||
* @param array $options an array of options. Possible keys:
|
* @param array<string, mixed> $options an array of options. Possible keys:
|
||||||
* * `host` - The host to use when connecting to the web service.
|
* * `host` - The host to use when connecting to the web service.
|
||||||
* * `useHttps` - A boolean flag for sending the request via https.(True by default)
|
* * `useHttps` - Set to false to disable HTTPS.
|
||||||
* * `userAgent` - The prefix of the User-Agent to use in the request.
|
* * `userAgent` - The prefix of the User-Agent to use in the request.
|
||||||
* * `caBundle` - The bundle of CA root certificates to use in the request.
|
* * `caBundle` - The bundle of CA root certificates to use in the request.
|
||||||
* * `connectTimeout` - The connect timeout to use for the request.
|
* * `connectTimeout` - The connect timeout to use for the request.
|
||||||
* * `timeout` - The timeout to use for the request.
|
* * `timeout` - The timeout to use for the request.
|
||||||
* * `proxy` - The HTTP proxy to use. May include a schema, port,
|
* * `proxy` - The HTTP proxy to use. May include a schema, port,
|
||||||
* username, and password, e.g., `http://username:password@127.0.0.1:10`.
|
* username, and password, e.g., `http://username:password@127.0.0.1:10`.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
int $accountId,
|
int $accountId,
|
||||||
@ -127,9 +127,9 @@ class Client
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $service name of the service querying
|
* @param string $service name of the service querying
|
||||||
* @param string $path the URI path to use
|
* @param string $path the URI path to use
|
||||||
* @param array $input the data to be posted as JSON
|
* @param array<mixed> $input the data to be posted as JSON
|
||||||
*
|
*
|
||||||
* @throws InvalidInputException when the request has missing or invalid
|
* @throws InvalidInputException when the request has missing or invalid
|
||||||
* data
|
* data
|
||||||
@ -142,7 +142,7 @@ class Client
|
|||||||
* @throws WebServiceException when some other error occurs. This also
|
* @throws WebServiceException when some other error occurs. This also
|
||||||
* serves as the base class for the above exceptions.
|
* serves as the base class for the above exceptions.
|
||||||
*
|
*
|
||||||
* @return array|null The decoded content of a successful response
|
* @return array<mixed>|null The decoded content of a successful response
|
||||||
*/
|
*/
|
||||||
public function post(string $service, string $path, array $input): ?array
|
public function post(string $service, string $path, array $input): ?array
|
||||||
{
|
{
|
||||||
@ -170,6 +170,9 @@ class Client
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<mixed>|null
|
||||||
|
*/
|
||||||
public function get(string $service, string $path): ?array
|
public function get(string $service, string $path): ?array
|
||||||
{
|
{
|
||||||
$request = $this->createRequest(
|
$request = $this->createRequest(
|
||||||
@ -195,6 +198,9 @@ class Client
|
|||||||
' curl/' . $curlVersion['version'];
|
' curl/' . $curlVersion['version'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<string> $headers
|
||||||
|
*/
|
||||||
private function createRequest(string $path, array $headers = []): Http\Request
|
private function createRequest(string $path, array $headers = []): Http\Request
|
||||||
{
|
{
|
||||||
array_push(
|
array_push(
|
||||||
@ -233,7 +239,7 @@ class Client
|
|||||||
* @throws WebServiceException when some other error occurs. This also
|
* @throws WebServiceException when some other error occurs. This also
|
||||||
* serves as the base class for the above exceptions
|
* serves as the base class for the above exceptions
|
||||||
*
|
*
|
||||||
* @return array|null The decoded content of a successful response
|
* @return array<mixed>|null The decoded content of a successful response
|
||||||
*/
|
*/
|
||||||
private function handleResponse(
|
private function handleResponse(
|
||||||
int $statusCode,
|
int $statusCode,
|
||||||
@ -463,7 +469,7 @@ class Client
|
|||||||
* included, or is expected and included
|
* included, or is expected and included
|
||||||
* but cannot be decoded as JSON
|
* but cannot be decoded as JSON
|
||||||
*
|
*
|
||||||
* @return array|null the decoded request body
|
* @return array<mixed>|null the decoded request body
|
||||||
*/
|
*/
|
||||||
private function handleSuccess(int $statusCode, ?string $body, string $service): ?array
|
private function handleSuccess(int $statusCode, ?string $body, string $service): ?array
|
||||||
{
|
{
|
||||||
|
14
includes/vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php
generated
vendored
14
includes/vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php
generated
vendored
@ -24,10 +24,13 @@ class CurlRequest implements Request
|
|||||||
private $url;
|
private $url;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array<string, mixed>
|
||||||
*/
|
*/
|
||||||
private $options;
|
private $options;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<string, mixed> $options
|
||||||
|
*/
|
||||||
public function __construct(string $url, array $options)
|
public function __construct(string $url, array $options)
|
||||||
{
|
{
|
||||||
$this->url = $url;
|
$this->url = $url;
|
||||||
@ -37,6 +40,8 @@ class CurlRequest implements Request
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws HttpException
|
* @throws HttpException
|
||||||
|
*
|
||||||
|
* @return array{0:int, 1:string|null, 2:string|null}
|
||||||
*/
|
*/
|
||||||
public function post(string $body): array
|
public function post(string $body): array
|
||||||
{
|
{
|
||||||
@ -48,6 +53,9 @@ class CurlRequest implements Request
|
|||||||
return $this->execute($curl);
|
return $this->execute($curl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{0:int, 1:string|null, 2:string|null}
|
||||||
|
*/
|
||||||
public function get(): array
|
public function get(): array
|
||||||
{
|
{
|
||||||
$curl = $this->createCurl();
|
$curl = $this->createCurl();
|
||||||
@ -106,6 +114,8 @@ class CurlRequest implements Request
|
|||||||
* @param \CurlHandle $curl
|
* @param \CurlHandle $curl
|
||||||
*
|
*
|
||||||
* @throws HttpException
|
* @throws HttpException
|
||||||
|
*
|
||||||
|
* @return array{0:int, 1:string|null, 2:string|null}
|
||||||
*/
|
*/
|
||||||
private function execute($curl): array
|
private function execute($curl): array
|
||||||
{
|
{
|
||||||
@ -129,7 +139,7 @@ class CurlRequest implements Request
|
|||||||
// indicates server did not send valid Content-Type: header" for
|
// indicates server did not send valid Content-Type: header" for
|
||||||
// CURLINFO_CONTENT_TYPE. However, it will return FALSE if no header
|
// CURLINFO_CONTENT_TYPE. However, it will return FALSE if no header
|
||||||
// is set. To keep our types simple, we return null in this case.
|
// is set. To keep our types simple, we return null in this case.
|
||||||
($contentType === false ? null : $contentType),
|
$contentType === false ? null : $contentType,
|
||||||
$body,
|
$body,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
9
includes/vendor/maxmind/web-service-common/src/WebService/Http/Request.php
generated
vendored
9
includes/vendor/maxmind/web-service-common/src/WebService/Http/Request.php
generated
vendored
@ -11,9 +11,18 @@ namespace MaxMind\WebService\Http;
|
|||||||
*/
|
*/
|
||||||
interface Request
|
interface Request
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @param array<string, mixed> $options
|
||||||
|
*/
|
||||||
public function __construct(string $url, array $options);
|
public function __construct(string $url, array $options);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{0:int, 1:string|null, 2:string|null}
|
||||||
|
*/
|
||||||
public function post(string $body): array;
|
public function post(string $body): array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{0:int, 1:string|null, 2:string|null}
|
||||||
|
*/
|
||||||
public function get(): array;
|
public function get(): array;
|
||||||
}
|
}
|
||||||
|
3
includes/vendor/maxmind/web-service-common/src/WebService/Http/RequestFactory.php
generated
vendored
3
includes/vendor/maxmind/web-service-common/src/WebService/Http/RequestFactory.php
generated
vendored
@ -39,6 +39,9 @@ class RequestFactory
|
|||||||
return $this->ch;
|
return $this->ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<string, mixed> $options
|
||||||
|
*/
|
||||||
public function request(string $url, array $options): Request
|
public function request(string $url, array $options): Request
|
||||||
{
|
{
|
||||||
$options['curlHandle'] = $this->getCurlHandle();
|
$options['curlHandle'] = $this->getCurlHandle();
|
||||||
|
128
includes/vendor/psr/log/Psr/Log/AbstractLogger.php
generated
vendored
128
includes/vendor/psr/log/Psr/Log/AbstractLogger.php
generated
vendored
@ -1,128 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Psr\Log;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a simple Logger implementation that other Loggers can inherit from.
|
|
||||||
*
|
|
||||||
* It simply delegates all log-level-specific methods to the `log` method to
|
|
||||||
* reduce boilerplate code that a simple Logger that does the same thing with
|
|
||||||
* messages regardless of the error level has to implement.
|
|
||||||
*/
|
|
||||||
abstract class AbstractLogger implements LoggerInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* System is unusable.
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function emergency($message, array $context = array())
|
|
||||||
{
|
|
||||||
$this->log(LogLevel::EMERGENCY, $message, $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Action must be taken immediately.
|
|
||||||
*
|
|
||||||
* Example: Entire website down, database unavailable, etc. This should
|
|
||||||
* trigger the SMS alerts and wake you up.
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function alert($message, array $context = array())
|
|
||||||
{
|
|
||||||
$this->log(LogLevel::ALERT, $message, $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Critical conditions.
|
|
||||||
*
|
|
||||||
* Example: Application component unavailable, unexpected exception.
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function critical($message, array $context = array())
|
|
||||||
{
|
|
||||||
$this->log(LogLevel::CRITICAL, $message, $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Runtime errors that do not require immediate action but should typically
|
|
||||||
* be logged and monitored.
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function error($message, array $context = array())
|
|
||||||
{
|
|
||||||
$this->log(LogLevel::ERROR, $message, $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Exceptional occurrences that are not errors.
|
|
||||||
*
|
|
||||||
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
|
||||||
* that are not necessarily wrong.
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function warning($message, array $context = array())
|
|
||||||
{
|
|
||||||
$this->log(LogLevel::WARNING, $message, $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Normal but significant events.
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function notice($message, array $context = array())
|
|
||||||
{
|
|
||||||
$this->log(LogLevel::NOTICE, $message, $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interesting events.
|
|
||||||
*
|
|
||||||
* Example: User logs in, SQL logs.
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function info($message, array $context = array())
|
|
||||||
{
|
|
||||||
$this->log(LogLevel::INFO, $message, $context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Detailed debug information.
|
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function debug($message, array $context = array())
|
|
||||||
{
|
|
||||||
$this->log(LogLevel::DEBUG, $message, $context);
|
|
||||||
}
|
|
||||||
}
|
|
18
includes/vendor/psr/log/Psr/Log/Test/DummyTest.php
generated
vendored
18
includes/vendor/psr/log/Psr/Log/Test/DummyTest.php
generated
vendored
@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Psr\Log\Test;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class is internal and does not follow the BC promise.
|
|
||||||
*
|
|
||||||
* Do NOT use this class in any way.
|
|
||||||
*
|
|
||||||
* @internal
|
|
||||||
*/
|
|
||||||
class DummyTest
|
|
||||||
{
|
|
||||||
public function __toString()
|
|
||||||
{
|
|
||||||
return 'DummyTest';
|
|
||||||
}
|
|
||||||
}
|
|
138
includes/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
generated
vendored
138
includes/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
generated
vendored
@ -1,138 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Psr\Log\Test;
|
|
||||||
|
|
||||||
use Psr\Log\LoggerInterface;
|
|
||||||
use Psr\Log\LogLevel;
|
|
||||||
use PHPUnit\Framework\TestCase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides a base test class for ensuring compliance with the LoggerInterface.
|
|
||||||
*
|
|
||||||
* Implementors can extend the class and implement abstract methods to run this
|
|
||||||
* as part of their test suite.
|
|
||||||
*/
|
|
||||||
abstract class LoggerInterfaceTest extends TestCase
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @return LoggerInterface
|
|
||||||
*/
|
|
||||||
abstract public function getLogger();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This must return the log messages in order.
|
|
||||||
*
|
|
||||||
* The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
|
|
||||||
*
|
|
||||||
* Example ->error('Foo') would yield "error Foo".
|
|
||||||
*
|
|
||||||
* @return string[]
|
|
||||||
*/
|
|
||||||
abstract public function getLogs();
|
|
||||||
|
|
||||||
public function testImplements()
|
|
||||||
{
|
|
||||||
$this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider provideLevelsAndMessages
|
|
||||||
*/
|
|
||||||
public function testLogsAtAllLevels($level, $message)
|
|
||||||
{
|
|
||||||
$logger = $this->getLogger();
|
|
||||||
$logger->{$level}($message, array('user' => 'Bob'));
|
|
||||||
$logger->log($level, $message, array('user' => 'Bob'));
|
|
||||||
|
|
||||||
$expected = array(
|
|
||||||
$level.' message of level '.$level.' with context: Bob',
|
|
||||||
$level.' message of level '.$level.' with context: Bob',
|
|
||||||
);
|
|
||||||
$this->assertEquals($expected, $this->getLogs());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function provideLevelsAndMessages()
|
|
||||||
{
|
|
||||||
return array(
|
|
||||||
LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
|
|
||||||
LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
|
|
||||||
LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
|
|
||||||
LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
|
|
||||||
LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
|
|
||||||
LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
|
|
||||||
LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
|
|
||||||
LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException \Psr\Log\InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function testThrowsOnInvalidLevel()
|
|
||||||
{
|
|
||||||
$logger = $this->getLogger();
|
|
||||||
$logger->log('invalid level', 'Foo');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testContextReplacement()
|
|
||||||
{
|
|
||||||
$logger = $this->getLogger();
|
|
||||||
$logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
|
|
||||||
|
|
||||||
$expected = array('info {Message {nothing} Bob Bar a}');
|
|
||||||
$this->assertEquals($expected, $this->getLogs());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testObjectCastToString()
|
|
||||||
{
|
|
||||||
if (method_exists($this, 'createPartialMock')) {
|
|
||||||
$dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
|
|
||||||
} else {
|
|
||||||
$dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
|
|
||||||
}
|
|
||||||
$dummy->expects($this->once())
|
|
||||||
->method('__toString')
|
|
||||||
->will($this->returnValue('DUMMY'));
|
|
||||||
|
|
||||||
$this->getLogger()->warning($dummy);
|
|
||||||
|
|
||||||
$expected = array('warning DUMMY');
|
|
||||||
$this->assertEquals($expected, $this->getLogs());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testContextCanContainAnything()
|
|
||||||
{
|
|
||||||
$closed = fopen('php://memory', 'r');
|
|
||||||
fclose($closed);
|
|
||||||
|
|
||||||
$context = array(
|
|
||||||
'bool' => true,
|
|
||||||
'null' => null,
|
|
||||||
'string' => 'Foo',
|
|
||||||
'int' => 0,
|
|
||||||
'float' => 0.5,
|
|
||||||
'nested' => array('with object' => new DummyTest),
|
|
||||||
'object' => new \DateTime,
|
|
||||||
'resource' => fopen('php://memory', 'r'),
|
|
||||||
'closed' => $closed,
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->getLogger()->warning('Crazy context data', $context);
|
|
||||||
|
|
||||||
$expected = array('warning Crazy context data');
|
|
||||||
$this->assertEquals($expected, $this->getLogs());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testContextExceptionKeyCanBeExceptionOrOtherValues()
|
|
||||||
{
|
|
||||||
$logger = $this->getLogger();
|
|
||||||
$logger->warning('Random message', array('exception' => 'oops'));
|
|
||||||
$logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
|
|
||||||
|
|
||||||
$expected = array(
|
|
||||||
'warning Random message',
|
|
||||||
'critical Uncaught Exception!'
|
|
||||||
);
|
|
||||||
$this->assertEquals($expected, $this->getLogs());
|
|
||||||
}
|
|
||||||
}
|
|
147
includes/vendor/psr/log/Psr/Log/Test/TestLogger.php
generated
vendored
147
includes/vendor/psr/log/Psr/Log/Test/TestLogger.php
generated
vendored
@ -1,147 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Psr\Log\Test;
|
|
||||||
|
|
||||||
use Psr\Log\AbstractLogger;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used for testing purposes.
|
|
||||||
*
|
|
||||||
* It records all records and gives you access to them for verification.
|
|
||||||
*
|
|
||||||
* @method bool hasEmergency($record)
|
|
||||||
* @method bool hasAlert($record)
|
|
||||||
* @method bool hasCritical($record)
|
|
||||||
* @method bool hasError($record)
|
|
||||||
* @method bool hasWarning($record)
|
|
||||||
* @method bool hasNotice($record)
|
|
||||||
* @method bool hasInfo($record)
|
|
||||||
* @method bool hasDebug($record)
|
|
||||||
*
|
|
||||||
* @method bool hasEmergencyRecords()
|
|
||||||
* @method bool hasAlertRecords()
|
|
||||||
* @method bool hasCriticalRecords()
|
|
||||||
* @method bool hasErrorRecords()
|
|
||||||
* @method bool hasWarningRecords()
|
|
||||||
* @method bool hasNoticeRecords()
|
|
||||||
* @method bool hasInfoRecords()
|
|
||||||
* @method bool hasDebugRecords()
|
|
||||||
*
|
|
||||||
* @method bool hasEmergencyThatContains($message)
|
|
||||||
* @method bool hasAlertThatContains($message)
|
|
||||||
* @method bool hasCriticalThatContains($message)
|
|
||||||
* @method bool hasErrorThatContains($message)
|
|
||||||
* @method bool hasWarningThatContains($message)
|
|
||||||
* @method bool hasNoticeThatContains($message)
|
|
||||||
* @method bool hasInfoThatContains($message)
|
|
||||||
* @method bool hasDebugThatContains($message)
|
|
||||||
*
|
|
||||||
* @method bool hasEmergencyThatMatches($message)
|
|
||||||
* @method bool hasAlertThatMatches($message)
|
|
||||||
* @method bool hasCriticalThatMatches($message)
|
|
||||||
* @method bool hasErrorThatMatches($message)
|
|
||||||
* @method bool hasWarningThatMatches($message)
|
|
||||||
* @method bool hasNoticeThatMatches($message)
|
|
||||||
* @method bool hasInfoThatMatches($message)
|
|
||||||
* @method bool hasDebugThatMatches($message)
|
|
||||||
*
|
|
||||||
* @method bool hasEmergencyThatPasses($message)
|
|
||||||
* @method bool hasAlertThatPasses($message)
|
|
||||||
* @method bool hasCriticalThatPasses($message)
|
|
||||||
* @method bool hasErrorThatPasses($message)
|
|
||||||
* @method bool hasWarningThatPasses($message)
|
|
||||||
* @method bool hasNoticeThatPasses($message)
|
|
||||||
* @method bool hasInfoThatPasses($message)
|
|
||||||
* @method bool hasDebugThatPasses($message)
|
|
||||||
*/
|
|
||||||
class TestLogger extends AbstractLogger
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
public $records = [];
|
|
||||||
|
|
||||||
public $recordsByLevel = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @inheritdoc
|
|
||||||
*/
|
|
||||||
public function log($level, $message, array $context = [])
|
|
||||||
{
|
|
||||||
$record = [
|
|
||||||
'level' => $level,
|
|
||||||
'message' => $message,
|
|
||||||
'context' => $context,
|
|
||||||
];
|
|
||||||
|
|
||||||
$this->recordsByLevel[$record['level']][] = $record;
|
|
||||||
$this->records[] = $record;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function hasRecords($level)
|
|
||||||
{
|
|
||||||
return isset($this->recordsByLevel[$level]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function hasRecord($record, $level)
|
|
||||||
{
|
|
||||||
if (is_string($record)) {
|
|
||||||
$record = ['message' => $record];
|
|
||||||
}
|
|
||||||
return $this->hasRecordThatPasses(function ($rec) use ($record) {
|
|
||||||
if ($rec['message'] !== $record['message']) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (isset($record['context']) && $rec['context'] !== $record['context']) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}, $level);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function hasRecordThatContains($message, $level)
|
|
||||||
{
|
|
||||||
return $this->hasRecordThatPasses(function ($rec) use ($message) {
|
|
||||||
return strpos($rec['message'], $message) !== false;
|
|
||||||
}, $level);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function hasRecordThatMatches($regex, $level)
|
|
||||||
{
|
|
||||||
return $this->hasRecordThatPasses(function ($rec) use ($regex) {
|
|
||||||
return preg_match($regex, $rec['message']) > 0;
|
|
||||||
}, $level);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function hasRecordThatPasses(callable $predicate, $level)
|
|
||||||
{
|
|
||||||
if (!isset($this->recordsByLevel[$level])) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
foreach ($this->recordsByLevel[$level] as $i => $rec) {
|
|
||||||
if (call_user_func($predicate, $rec, $i)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __call($method, $args)
|
|
||||||
{
|
|
||||||
if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {
|
|
||||||
$genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];
|
|
||||||
$level = strtolower($matches[2]);
|
|
||||||
if (method_exists($this, $genericMethod)) {
|
|
||||||
$args[] = $level;
|
|
||||||
return call_user_func_array([$this, $genericMethod], $args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function reset()
|
|
||||||
{
|
|
||||||
$this->records = [];
|
|
||||||
$this->recordsByLevel = [];
|
|
||||||
}
|
|
||||||
}
|
|
15
includes/vendor/psr/log/src/AbstractLogger.php
generated
vendored
Normal file
15
includes/vendor/psr/log/src/AbstractLogger.php
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a simple Logger implementation that other Loggers can inherit from.
|
||||||
|
*
|
||||||
|
* It simply delegates all log-level-specific methods to the `log` method to
|
||||||
|
* reduce boilerplate code that a simple Logger that does the same thing with
|
||||||
|
* messages regardless of the error level has to implement.
|
||||||
|
*/
|
||||||
|
abstract class AbstractLogger implements LoggerInterface
|
||||||
|
{
|
||||||
|
use LoggerTrait;
|
||||||
|
}
|
@ -9,10 +9,6 @@ interface LoggerAwareInterface
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Sets a logger instance on the object.
|
* Sets a logger instance on the object.
|
||||||
*
|
|
||||||
* @param LoggerInterface $logger
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function setLogger(LoggerInterface $logger);
|
public function setLogger(LoggerInterface $logger): void;
|
||||||
}
|
}
|
@ -9,17 +9,13 @@ trait LoggerAwareTrait
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The logger instance.
|
* The logger instance.
|
||||||
*
|
|
||||||
* @var LoggerInterface|null
|
|
||||||
*/
|
*/
|
||||||
protected $logger;
|
protected ?LoggerInterface $logger = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a logger.
|
* Sets a logger.
|
||||||
*
|
|
||||||
* @param LoggerInterface $logger
|
|
||||||
*/
|
*/
|
||||||
public function setLogger(LoggerInterface $logger)
|
public function setLogger(LoggerInterface $logger): void
|
||||||
{
|
{
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
}
|
}
|
@ -22,12 +22,9 @@ interface LoggerInterface
|
|||||||
/**
|
/**
|
||||||
* System is unusable.
|
* System is unusable.
|
||||||
*
|
*
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function emergency($message, array $context = array());
|
public function emergency(string|\Stringable $message, array $context = []): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action must be taken immediately.
|
* Action must be taken immediately.
|
||||||
@ -35,35 +32,26 @@ interface LoggerInterface
|
|||||||
* Example: Entire website down, database unavailable, etc. This should
|
* Example: Entire website down, database unavailable, etc. This should
|
||||||
* trigger the SMS alerts and wake you up.
|
* trigger the SMS alerts and wake you up.
|
||||||
*
|
*
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function alert($message, array $context = array());
|
public function alert(string|\Stringable $message, array $context = []): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Critical conditions.
|
* Critical conditions.
|
||||||
*
|
*
|
||||||
* Example: Application component unavailable, unexpected exception.
|
* Example: Application component unavailable, unexpected exception.
|
||||||
*
|
*
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function critical($message, array $context = array());
|
public function critical(string|\Stringable $message, array $context = []): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runtime errors that do not require immediate action but should typically
|
* Runtime errors that do not require immediate action but should typically
|
||||||
* be logged and monitored.
|
* be logged and monitored.
|
||||||
*
|
*
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function error($message, array $context = array());
|
public function error(string|\Stringable $message, array $context = []): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exceptional occurrences that are not errors.
|
* Exceptional occurrences that are not errors.
|
||||||
@ -71,55 +59,40 @@ interface LoggerInterface
|
|||||||
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
||||||
* that are not necessarily wrong.
|
* that are not necessarily wrong.
|
||||||
*
|
*
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function warning($message, array $context = array());
|
public function warning(string|\Stringable $message, array $context = []): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normal but significant events.
|
* Normal but significant events.
|
||||||
*
|
*
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function notice($message, array $context = array());
|
public function notice(string|\Stringable $message, array $context = []): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interesting events.
|
* Interesting events.
|
||||||
*
|
*
|
||||||
* Example: User logs in, SQL logs.
|
* Example: User logs in, SQL logs.
|
||||||
*
|
*
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function info($message, array $context = array());
|
public function info(string|\Stringable $message, array $context = []): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detailed debug information.
|
* Detailed debug information.
|
||||||
*
|
*
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function debug($message, array $context = array());
|
public function debug(string|\Stringable $message, array $context = []): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs with an arbitrary level.
|
* Logs with an arbitrary level.
|
||||||
*
|
*
|
||||||
* @param mixed $level
|
* @param mixed $level
|
||||||
* @param string $message
|
|
||||||
* @param mixed[] $context
|
* @param mixed[] $context
|
||||||
*
|
*
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @throws \Psr\Log\InvalidArgumentException
|
* @throws \Psr\Log\InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function log($level, $message, array $context = array());
|
public function log($level, string|\Stringable $message, array $context = []): void;
|
||||||
}
|
}
|
@ -14,13 +14,8 @@ trait LoggerTrait
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* System is unusable.
|
* System is unusable.
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function emergency($message, array $context = array())
|
public function emergency(string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
$this->log(LogLevel::EMERGENCY, $message, $context);
|
$this->log(LogLevel::EMERGENCY, $message, $context);
|
||||||
}
|
}
|
||||||
@ -30,13 +25,8 @@ trait LoggerTrait
|
|||||||
*
|
*
|
||||||
* Example: Entire website down, database unavailable, etc. This should
|
* Example: Entire website down, database unavailable, etc. This should
|
||||||
* trigger the SMS alerts and wake you up.
|
* trigger the SMS alerts and wake you up.
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function alert($message, array $context = array())
|
public function alert(string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
$this->log(LogLevel::ALERT, $message, $context);
|
$this->log(LogLevel::ALERT, $message, $context);
|
||||||
}
|
}
|
||||||
@ -45,13 +35,8 @@ trait LoggerTrait
|
|||||||
* Critical conditions.
|
* Critical conditions.
|
||||||
*
|
*
|
||||||
* Example: Application component unavailable, unexpected exception.
|
* Example: Application component unavailable, unexpected exception.
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function critical($message, array $context = array())
|
public function critical(string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
$this->log(LogLevel::CRITICAL, $message, $context);
|
$this->log(LogLevel::CRITICAL, $message, $context);
|
||||||
}
|
}
|
||||||
@ -59,13 +44,8 @@ trait LoggerTrait
|
|||||||
/**
|
/**
|
||||||
* Runtime errors that do not require immediate action but should typically
|
* Runtime errors that do not require immediate action but should typically
|
||||||
* be logged and monitored.
|
* be logged and monitored.
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function error($message, array $context = array())
|
public function error(string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
$this->log(LogLevel::ERROR, $message, $context);
|
$this->log(LogLevel::ERROR, $message, $context);
|
||||||
}
|
}
|
||||||
@ -75,26 +55,16 @@ trait LoggerTrait
|
|||||||
*
|
*
|
||||||
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
||||||
* that are not necessarily wrong.
|
* that are not necessarily wrong.
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function warning($message, array $context = array())
|
public function warning(string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
$this->log(LogLevel::WARNING, $message, $context);
|
$this->log(LogLevel::WARNING, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normal but significant events.
|
* Normal but significant events.
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function notice($message, array $context = array())
|
public function notice(string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
$this->log(LogLevel::NOTICE, $message, $context);
|
$this->log(LogLevel::NOTICE, $message, $context);
|
||||||
}
|
}
|
||||||
@ -103,26 +73,16 @@ trait LoggerTrait
|
|||||||
* Interesting events.
|
* Interesting events.
|
||||||
*
|
*
|
||||||
* Example: User logs in, SQL logs.
|
* Example: User logs in, SQL logs.
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function info($message, array $context = array())
|
public function info(string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
$this->log(LogLevel::INFO, $message, $context);
|
$this->log(LogLevel::INFO, $message, $context);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detailed debug information.
|
* Detailed debug information.
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function debug($message, array $context = array())
|
public function debug(string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
$this->log(LogLevel::DEBUG, $message, $context);
|
$this->log(LogLevel::DEBUG, $message, $context);
|
||||||
}
|
}
|
||||||
@ -130,13 +90,9 @@ trait LoggerTrait
|
|||||||
/**
|
/**
|
||||||
* Logs with an arbitrary level.
|
* Logs with an arbitrary level.
|
||||||
*
|
*
|
||||||
* @param mixed $level
|
* @param mixed $level
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
*
|
||||||
* @throws \Psr\Log\InvalidArgumentException
|
* @throws \Psr\Log\InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
abstract public function log($level, $message, array $context = array());
|
abstract public function log($level, string|\Stringable $message, array $context = []): void;
|
||||||
}
|
}
|
@ -15,15 +15,11 @@ class NullLogger extends AbstractLogger
|
|||||||
/**
|
/**
|
||||||
* Logs with an arbitrary level.
|
* Logs with an arbitrary level.
|
||||||
*
|
*
|
||||||
* @param mixed $level
|
* @param mixed[] $context
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
*
|
||||||
* @throws \Psr\Log\InvalidArgumentException
|
* @throws \Psr\Log\InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function log($level, $message, array $context = array())
|
public function log($level, string|\Stringable $message, array $context = []): void
|
||||||
{
|
{
|
||||||
// noop
|
// noop
|
||||||
}
|
}
|
18
includes/vendor/rmccue/requests/README.md
generated
vendored
18
includes/vendor/rmccue/requests/README.md
generated
vendored
@ -151,6 +151,24 @@ If you'd like to run a single set of tests, specify just the name:
|
|||||||
$ phpunit Transport/cURL
|
$ phpunit Transport/cURL
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Requests and PSR-7/PSR-18
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
[PSR-7][psr-7] describes common interfaces for representing HTTP messages.
|
||||||
|
[PSR-18][psr-18] describes a common interface for sending HTTP requests and receiving HTTP responses.
|
||||||
|
|
||||||
|
Both PSR-7 as well as PSR-18 were created after Requests' conception.
|
||||||
|
At this time, there is no intention to add a native PSR-7/PSR-18 implementation to the Requests library.
|
||||||
|
|
||||||
|
However, the amazing [Artur Weigandt][art4] has created a [package][requests-psr-18], which allows you to use Requests as a PSR-7 compatible PSR-18 HTTP Client.
|
||||||
|
If you are interested in a PSR-7/PSR-18 compatible version of Requests, we highly recommend you check out [this package][requests-psr-18].
|
||||||
|
|
||||||
|
[psr-7]: https://www.php-fig.org/psr/psr-7/
|
||||||
|
[psr-18]: https://www.php-fig.org/psr/psr-18/
|
||||||
|
[art4]: https://github.com/Art4
|
||||||
|
[requests-psr-18]: https://packagist.org/packages/art4/requests-psr18-adapter
|
||||||
|
|
||||||
|
|
||||||
Contribute
|
Contribute
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
119
includes/vendor/rmccue/requests/certificates/cacert.pem
generated
vendored
119
includes/vendor/rmccue/requests/certificates/cacert.pem
generated
vendored
@ -1,7 +1,7 @@
|
|||||||
##
|
##
|
||||||
## Bundle of CA Root Certificates
|
## Bundle of CA Root Certificates
|
||||||
##
|
##
|
||||||
## Certificate data from Mozilla as of: Tue Sep 24 03:12:04 2024 GMT
|
## Certificate data from Mozilla as of: Tue Dec 31 04:12:05 2024 GMT
|
||||||
##
|
##
|
||||||
## Find updated versions here: https://curl.se/docs/caextract.html
|
## Find updated versions here: https://curl.se/docs/caextract.html
|
||||||
##
|
##
|
||||||
@ -16,7 +16,7 @@
|
|||||||
## Just configure this file as the SSLCACertificateFile.
|
## Just configure this file as the SSLCACertificateFile.
|
||||||
##
|
##
|
||||||
## Conversion done with mk-ca-bundle.pl version 1.29.
|
## Conversion done with mk-ca-bundle.pl version 1.29.
|
||||||
## SHA256: 36105b01631f9fc03b1eca779b44a30a1a5890b9bf8dc07ccb001a07301e01cf
|
## SHA256: c99d6d3f8d3d4e47719ba2b648992f5b58b150128d3aca3c05c566d8dc98e116
|
||||||
##
|
##
|
||||||
|
|
||||||
|
|
||||||
@ -584,27 +584,6 @@ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
|
|||||||
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
SecureSign RootCA11
|
|
||||||
===================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
|
|
||||||
SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
|
|
||||||
b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
|
|
||||||
KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
|
|
||||||
cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
|
|
||||||
TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
|
|
||||||
wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
|
|
||||||
g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
|
|
||||||
O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
|
|
||||||
bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
|
|
||||||
t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
|
|
||||||
OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
|
|
||||||
bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
|
|
||||||
Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
|
|
||||||
y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
|
|
||||||
lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Microsec e-Szigno Root CA 2009
|
Microsec e-Szigno Root CA 2009
|
||||||
==============================
|
==============================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -2319,40 +2298,6 @@ hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB
|
|||||||
dBb9HxEGmpv0
|
dBb9HxEGmpv0
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Entrust Root Certification Authority - G4
|
|
||||||
=========================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV
|
|
||||||
BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu
|
|
||||||
bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1
|
|
||||||
dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1
|
|
||||||
dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT
|
|
||||||
AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
|
|
||||||
L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv
|
|
||||||
cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv
|
|
||||||
cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D
|
|
||||||
umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV
|
|
||||||
3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds
|
|
||||||
8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ
|
|
||||||
e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7
|
|
||||||
ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X
|
|
||||||
xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV
|
|
||||||
7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
|
|
||||||
dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW
|
|
||||||
Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T
|
|
||||||
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n
|
|
||||||
MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q
|
|
||||||
jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht
|
|
||||||
7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK
|
|
||||||
YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt
|
|
||||||
jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+
|
|
||||||
m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW
|
|
||||||
RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA
|
|
||||||
JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G
|
|
||||||
+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT
|
|
||||||
kcpG2om3PVODLAgfi49T3f+sHw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Microsoft ECC Root Certificate Authority 2017
|
Microsoft ECC Root Certificate Authority 2017
|
||||||
=============================================
|
=============================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -2602,6 +2547,36 @@ vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+
|
|||||||
CAezNIm8BZ/3Hobui3A=
|
CAezNIm8BZ/3Hobui3A=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
GLOBALTRUST 2020
|
||||||
|
================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
ANF Secure Server Root CA
|
ANF Secure Server Root CA
|
||||||
=========================
|
=========================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -3140,36 +3115,6 @@ AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8
|
|||||||
rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Security Communication RootCA3
|
|
||||||
==============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
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
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Security Communication ECC RootCA1
|
Security Communication ECC RootCA1
|
||||||
==================================
|
==================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
|
2
includes/vendor/rmccue/requests/certificates/cacert.pem.sha256
generated
vendored
2
includes/vendor/rmccue/requests/certificates/cacert.pem.sha256
generated
vendored
@ -1 +1 @@
|
|||||||
189d3cf6d103185fba06d76c1af915263c6d42225481a1759e853b33ac857540 cacert.pem
|
a3f328c21e39ddd1f2be1cea43ac0dec819eaa20a90425d7da901a11531b3aa5 cacert.pem
|
||||||
|
2
includes/vendor/rmccue/requests/library/Requests.php
generated
vendored
2
includes/vendor/rmccue/requests/library/Requests.php
generated
vendored
@ -19,7 +19,7 @@
|
|||||||
if (!defined('REQUESTS_SILENCE_PSR0_DEPRECATIONS') || REQUESTS_SILENCE_PSR0_DEPRECATIONS !== true) {
|
if (!defined('REQUESTS_SILENCE_PSR0_DEPRECATIONS') || REQUESTS_SILENCE_PSR0_DEPRECATIONS !== true) {
|
||||||
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
|
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
|
||||||
trigger_error(
|
trigger_error(
|
||||||
'The PSR-0 `Requests_...` class names in the Request library are deprecated.'
|
'The PSR-0 `Requests_...` class names in the Requests library are deprecated.'
|
||||||
. ' Switch to the PSR-4 `WpOrg\Requests\...` class names at your earliest convenience.',
|
. ' Switch to the PSR-4 `WpOrg\Requests\...` class names at your earliest convenience.',
|
||||||
E_USER_DEPRECATED
|
E_USER_DEPRECATED
|
||||||
);
|
);
|
||||||
|
2
includes/vendor/rmccue/requests/src/Autoload.php
generated
vendored
2
includes/vendor/rmccue/requests/src/Autoload.php
generated
vendored
@ -166,7 +166,7 @@ if (class_exists('WpOrg\Requests\Autoload') === false) {
|
|||||||
if (!defined('REQUESTS_SILENCE_PSR0_DEPRECATIONS') || REQUESTS_SILENCE_PSR0_DEPRECATIONS !== true) {
|
if (!defined('REQUESTS_SILENCE_PSR0_DEPRECATIONS') || REQUESTS_SILENCE_PSR0_DEPRECATIONS !== true) {
|
||||||
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
|
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
|
||||||
trigger_error(
|
trigger_error(
|
||||||
'The PSR-0 `Requests_...` class names in the Request library are deprecated.'
|
'The PSR-0 `Requests_...` class names in the Requests library are deprecated.'
|
||||||
. ' Switch to the PSR-4 `WpOrg\Requests\...` class names at your earliest convenience.',
|
. ' Switch to the PSR-4 `WpOrg\Requests\...` class names at your earliest convenience.',
|
||||||
E_USER_DEPRECATED
|
E_USER_DEPRECATED
|
||||||
);
|
);
|
||||||
|
2
includes/vendor/rmccue/requests/src/Capability.php
generated
vendored
2
includes/vendor/rmccue/requests/src/Capability.php
generated
vendored
@ -28,7 +28,7 @@ interface Capability {
|
|||||||
*
|
*
|
||||||
* Note: this does not automatically mean that the capability will be supported for your chosen transport!
|
* Note: this does not automatically mean that the capability will be supported for your chosen transport!
|
||||||
*
|
*
|
||||||
* @var array<string>
|
* @var string[]
|
||||||
*/
|
*/
|
||||||
const ALL = [
|
const ALL = [
|
||||||
self::SSL,
|
self::SSL,
|
||||||
|
33
includes/vendor/rmccue/requests/src/Cookie.php
generated
vendored
33
includes/vendor/rmccue/requests/src/Cookie.php
generated
vendored
@ -36,8 +36,8 @@ class Cookie {
|
|||||||
/**
|
/**
|
||||||
* Cookie attributes
|
* Cookie attributes
|
||||||
*
|
*
|
||||||
* Valid keys are (currently) path, domain, expires, max-age, secure and
|
* Valid keys are `'path'`, `'domain'`, `'expires'`, `'max-age'`, `'secure'` and
|
||||||
* httponly.
|
* `'httponly'`.
|
||||||
*
|
*
|
||||||
* @var \WpOrg\Requests\Utility\CaseInsensitiveDictionary|array Array-like object
|
* @var \WpOrg\Requests\Utility\CaseInsensitiveDictionary|array Array-like object
|
||||||
*/
|
*/
|
||||||
@ -46,8 +46,7 @@ class Cookie {
|
|||||||
/**
|
/**
|
||||||
* Cookie flags
|
* Cookie flags
|
||||||
*
|
*
|
||||||
* Valid keys are (currently) creation, last-access, persistent and
|
* Valid keys are `'creation'`, `'last-access'`, `'persistent'` and `'host-only'`.
|
||||||
* host-only.
|
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
@ -66,11 +65,13 @@ class Cookie {
|
|||||||
/**
|
/**
|
||||||
* Create a new cookie object
|
* Create a new cookie object
|
||||||
*
|
*
|
||||||
* @param string $name
|
* @param string $name The name of the cookie.
|
||||||
* @param string $value
|
* @param string $value The value for the cookie.
|
||||||
* @param array|\WpOrg\Requests\Utility\CaseInsensitiveDictionary $attributes Associative array of attribute data
|
* @param array|\WpOrg\Requests\Utility\CaseInsensitiveDictionary $attributes Associative array of attribute data
|
||||||
* @param array $flags
|
* @param array $flags The flags for the cookie.
|
||||||
* @param int|null $reference_time
|
* Valid keys are `'creation'`, `'last-access'`,
|
||||||
|
* `'persistent'` and `'host-only'`.
|
||||||
|
* @param int|null $reference_time Reference time for relative calculations.
|
||||||
*
|
*
|
||||||
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $name argument is not a string.
|
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $name argument is not a string.
|
||||||
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $value argument is not a string.
|
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $value argument is not a string.
|
||||||
@ -279,7 +280,11 @@ class Cookie {
|
|||||||
public function normalize() {
|
public function normalize() {
|
||||||
foreach ($this->attributes as $key => $value) {
|
foreach ($this->attributes as $key => $value) {
|
||||||
$orig_value = $value;
|
$orig_value = $value;
|
||||||
$value = $this->normalize_attribute($key, $value);
|
|
||||||
|
if (is_string($key)) {
|
||||||
|
$value = $this->normalize_attribute($key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
if ($value === null) {
|
if ($value === null) {
|
||||||
unset($this->attributes[$key]);
|
unset($this->attributes[$key]);
|
||||||
continue;
|
continue;
|
||||||
@ -299,7 +304,7 @@ class Cookie {
|
|||||||
* Handles parsing individual attributes from the cookie values.
|
* Handles parsing individual attributes from the cookie values.
|
||||||
*
|
*
|
||||||
* @param string $name Attribute name
|
* @param string $name Attribute name
|
||||||
* @param string|boolean $value Attribute value (string value, or true if empty/flag)
|
* @param string|int|bool $value Attribute value (string/integer value, or true if empty/flag)
|
||||||
* @return mixed Value if available, or null if the attribute value is invalid (and should be skipped)
|
* @return mixed Value if available, or null if the attribute value is invalid (and should be skipped)
|
||||||
*/
|
*/
|
||||||
protected function normalize_attribute($name, $value) {
|
protected function normalize_attribute($name, $value) {
|
||||||
@ -465,13 +470,19 @@ class Cookie {
|
|||||||
* @param \WpOrg\Requests\Iri|null $origin URI for comparing cookie origins
|
* @param \WpOrg\Requests\Iri|null $origin URI for comparing cookie origins
|
||||||
* @param int|null $time Reference time for expiration calculation
|
* @param int|null $time Reference time for expiration calculation
|
||||||
* @return array
|
* @return array
|
||||||
|
*
|
||||||
|
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $origin argument is not null or an instance of the Iri class.
|
||||||
*/
|
*/
|
||||||
public static function parse_from_headers(Headers $headers, Iri $origin = null, $time = null) {
|
public static function parse_from_headers(Headers $headers, $origin = null, $time = null) {
|
||||||
$cookie_headers = $headers->getValues('Set-Cookie');
|
$cookie_headers = $headers->getValues('Set-Cookie');
|
||||||
if (empty($cookie_headers)) {
|
if (empty($cookie_headers)) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($origin !== null && !($origin instanceof Iri)) {
|
||||||
|
throw InvalidArgument::create(2, '$origin', Iri::class . ' or null', gettype($origin));
|
||||||
|
}
|
||||||
|
|
||||||
$cookies = [];
|
$cookies = [];
|
||||||
foreach ($cookie_headers as $header) {
|
foreach ($cookie_headers as $header) {
|
||||||
$parsed = self::parse($header, '', $time);
|
$parsed = self::parse($header, '', $time);
|
||||||
|
7
includes/vendor/rmccue/requests/src/Cookie/Jar.php
generated
vendored
7
includes/vendor/rmccue/requests/src/Cookie/Jar.php
generated
vendored
@ -49,7 +49,8 @@ class Jar implements ArrayAccess, IteratorAggregate {
|
|||||||
/**
|
/**
|
||||||
* Normalise cookie data into a \WpOrg\Requests\Cookie
|
* Normalise cookie data into a \WpOrg\Requests\Cookie
|
||||||
*
|
*
|
||||||
* @param string|\WpOrg\Requests\Cookie $cookie
|
* @param string|\WpOrg\Requests\Cookie $cookie Cookie header value, possibly pre-parsed (object).
|
||||||
|
* @param string $key Optional. The name for this cookie.
|
||||||
* @return \WpOrg\Requests\Cookie
|
* @return \WpOrg\Requests\Cookie
|
||||||
*/
|
*/
|
||||||
public function normalize_cookie($cookie, $key = '') {
|
public function normalize_cookie($cookie, $key = '') {
|
||||||
@ -106,7 +107,7 @@ class Jar implements ArrayAccess, IteratorAggregate {
|
|||||||
/**
|
/**
|
||||||
* Unset the given header
|
* Unset the given header
|
||||||
*
|
*
|
||||||
* @param string $offset
|
* @param string $offset The key for the item to unset.
|
||||||
*/
|
*/
|
||||||
#[ReturnTypeWillChange]
|
#[ReturnTypeWillChange]
|
||||||
public function offsetUnset($offset) {
|
public function offsetUnset($offset) {
|
||||||
@ -171,7 +172,7 @@ class Jar implements ArrayAccess, IteratorAggregate {
|
|||||||
/**
|
/**
|
||||||
* Parse all cookies from a response and attach them to the response
|
* Parse all cookies from a response and attach them to the response
|
||||||
*
|
*
|
||||||
* @param \WpOrg\Requests\Response $response
|
* @param \WpOrg\Requests\Response $response Response as received.
|
||||||
*/
|
*/
|
||||||
public function before_redirect_check(Response $response) {
|
public function before_redirect_check(Response $response) {
|
||||||
$url = $response->url;
|
$url = $response->url;
|
||||||
|
24
includes/vendor/rmccue/requests/src/IdnaEncoder.php
generated
vendored
24
includes/vendor/rmccue/requests/src/IdnaEncoder.php
generated
vendored
@ -137,7 +137,7 @@ class IdnaEncoder {
|
|||||||
*
|
*
|
||||||
* @internal (Testing found regex was the fastest implementation)
|
* @internal (Testing found regex was the fastest implementation)
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string $text Text to examine.
|
||||||
* @return bool Is the text string ASCII-only?
|
* @return bool Is the text string ASCII-only?
|
||||||
*/
|
*/
|
||||||
protected static function is_ascii($text) {
|
protected static function is_ascii($text) {
|
||||||
@ -148,7 +148,7 @@ class IdnaEncoder {
|
|||||||
* Prepare a text string for use as an IDNA name
|
* Prepare a text string for use as an IDNA name
|
||||||
*
|
*
|
||||||
* @todo Implement this based on RFC 3491 and the newer 5891
|
* @todo Implement this based on RFC 3491 and the newer 5891
|
||||||
* @param string $text
|
* @param string $text Text to prepare.
|
||||||
* @return string Prepared string
|
* @return string Prepared string
|
||||||
*/
|
*/
|
||||||
protected static function nameprep($text) {
|
protected static function nameprep($text) {
|
||||||
@ -160,7 +160,7 @@ class IdnaEncoder {
|
|||||||
*
|
*
|
||||||
* Based on \WpOrg\Requests\Iri::replace_invalid_with_pct_encoding()
|
* Based on \WpOrg\Requests\Iri::replace_invalid_with_pct_encoding()
|
||||||
*
|
*
|
||||||
* @param string $input
|
* @param string $input Text to convert.
|
||||||
* @return array Unicode code points
|
* @return array Unicode code points
|
||||||
*
|
*
|
||||||
* @throws \WpOrg\Requests\Exception Invalid UTF-8 codepoint (`idna.invalidcodepoint`)
|
* @throws \WpOrg\Requests\Exception Invalid UTF-8 codepoint (`idna.invalidcodepoint`)
|
||||||
@ -216,18 +216,18 @@ class IdnaEncoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (// Non-shortest form sequences are invalid
|
if (// Non-shortest form sequences are invalid
|
||||||
$length > 1 && $character <= 0x7F
|
($length > 1 && $character <= 0x7F)
|
||||||
|| $length > 2 && $character <= 0x7FF
|
|| ($length > 2 && $character <= 0x7FF)
|
||||||
|| $length > 3 && $character <= 0xFFFF
|
|| ($length > 3 && $character <= 0xFFFF)
|
||||||
// Outside of range of ucschar codepoints
|
// Outside of range of ucschar codepoints
|
||||||
// Noncharacters
|
// Noncharacters
|
||||||
|| ($character & 0xFFFE) === 0xFFFE
|
|| ($character & 0xFFFE) === 0xFFFE
|
||||||
|| $character >= 0xFDD0 && $character <= 0xFDEF
|
|| ($character >= 0xFDD0 && $character <= 0xFDEF)
|
||||||
|| (
|
|| (
|
||||||
// Everything else not in ucschar
|
// Everything else not in ucschar
|
||||||
$character > 0xD7FF && $character < 0xF900
|
($character > 0xD7FF && $character < 0xF900)
|
||||||
|| $character < 0x20
|
|| $character < 0x20
|
||||||
|| $character > 0x7E && $character < 0xA0
|
|| ($character > 0x7E && $character < 0xA0)
|
||||||
|| $character > 0xEFFFD
|
|| $character > 0xEFFFD
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
@ -329,10 +329,10 @@ class IdnaEncoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// output the code point for digit t + ((q - t) mod (base - t))
|
// output the code point for digit t + ((q - t) mod (base - t))
|
||||||
$digit = $t + (($q - $t) % (self::BOOTSTRAP_BASE - $t));
|
$digit = (int) ($t + (($q - $t) % (self::BOOTSTRAP_BASE - $t)));
|
||||||
$output .= self::digit_to_char($digit);
|
$output .= self::digit_to_char($digit);
|
||||||
// let q = (q - t) div (base - t)
|
// let q = (q - t) div (base - t)
|
||||||
$q = floor(($q - $t) / (self::BOOTSTRAP_BASE - $t));
|
$q = (int) floor(($q - $t) / (self::BOOTSTRAP_BASE - $t));
|
||||||
} // end
|
} // end
|
||||||
// output the code point for digit q
|
// output the code point for digit q
|
||||||
$output .= self::digit_to_char($q);
|
$output .= self::digit_to_char($q);
|
||||||
@ -381,7 +381,7 @@ class IdnaEncoder {
|
|||||||
* @param int $delta
|
* @param int $delta
|
||||||
* @param int $numpoints
|
* @param int $numpoints
|
||||||
* @param bool $firsttime
|
* @param bool $firsttime
|
||||||
* @return int New bias
|
* @return int|float New bias
|
||||||
*
|
*
|
||||||
* function adapt(delta,numpoints,firsttime):
|
* function adapt(delta,numpoints,firsttime):
|
||||||
*/
|
*/
|
||||||
|
2
includes/vendor/rmccue/requests/src/Ipv6.php
generated
vendored
2
includes/vendor/rmccue/requests/src/Ipv6.php
generated
vendored
@ -161,7 +161,7 @@ final class Ipv6 {
|
|||||||
list($ipv6, $ipv4) = self::split_v6_v4($ip);
|
list($ipv6, $ipv4) = self::split_v6_v4($ip);
|
||||||
$ipv6 = explode(':', $ipv6);
|
$ipv6 = explode(':', $ipv6);
|
||||||
$ipv4 = explode('.', $ipv4);
|
$ipv4 = explode('.', $ipv4);
|
||||||
if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4) {
|
if ((count($ipv6) === 8 && count($ipv4) === 1) || (count($ipv6) === 6 && count($ipv4) === 4)) {
|
||||||
foreach ($ipv6 as $ipv6_part) {
|
foreach ($ipv6 as $ipv6_part) {
|
||||||
// The section can't be empty
|
// The section can't be empty
|
||||||
if ($ipv6_part === '') {
|
if ($ipv6_part === '') {
|
||||||
|
7
includes/vendor/rmccue/requests/src/Iri.php
generated
vendored
7
includes/vendor/rmccue/requests/src/Iri.php
generated
vendored
@ -395,11 +395,11 @@ class Iri {
|
|||||||
// preceding "/" (if any) from the output buffer; otherwise,
|
// preceding "/" (if any) from the output buffer; otherwise,
|
||||||
elseif (strpos($input, '/../') === 0) {
|
elseif (strpos($input, '/../') === 0) {
|
||||||
$input = substr($input, 3);
|
$input = substr($input, 3);
|
||||||
$output = substr_replace($output, '', strrpos($output, '/'));
|
$output = substr_replace($output, '', (strrpos($output, '/') ?: 0));
|
||||||
}
|
}
|
||||||
elseif ($input === '/..') {
|
elseif ($input === '/..') {
|
||||||
$input = '/';
|
$input = '/';
|
||||||
$output = substr_replace($output, '', strrpos($output, '/'));
|
$output = substr_replace($output, '', (strrpos($output, '/') ?: 0));
|
||||||
}
|
}
|
||||||
// D: if the input buffer consists only of "." or "..", then remove
|
// D: if the input buffer consists only of "." or "..", then remove
|
||||||
// that from the input buffer; otherwise,
|
// that from the input buffer; otherwise,
|
||||||
@ -824,7 +824,8 @@ class Iri {
|
|||||||
else {
|
else {
|
||||||
$iuserinfo = null;
|
$iuserinfo = null;
|
||||||
}
|
}
|
||||||
if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false) {
|
|
||||||
|
if (($port_start = strpos($remaining, ':', (strpos($remaining, ']') ?: 0))) !== false) {
|
||||||
$port = substr($remaining, $port_start + 1);
|
$port = substr($remaining, $port_start + 1);
|
||||||
if ($port === false || $port === '') {
|
if ($port === false || $port === '') {
|
||||||
$port = null;
|
$port = null;
|
||||||
|
10
includes/vendor/rmccue/requests/src/Requests.php
generated
vendored
10
includes/vendor/rmccue/requests/src/Requests.php
generated
vendored
@ -148,7 +148,7 @@ class Requests {
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
const VERSION = '2.0.5';
|
const VERSION = '2.0.15';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Selected transport name
|
* Selected transport name
|
||||||
@ -642,12 +642,14 @@ class Requests {
|
|||||||
/**
|
/**
|
||||||
* Set the default values
|
* Set the default values
|
||||||
*
|
*
|
||||||
|
* The $options parameter is updated with the results.
|
||||||
|
*
|
||||||
* @param string $url URL to request
|
* @param string $url URL to request
|
||||||
* @param array $headers Extra headers to send with the request
|
* @param array $headers Extra headers to send with the request
|
||||||
* @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests
|
* @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests
|
||||||
* @param string $type HTTP request type
|
* @param string $type HTTP request type
|
||||||
* @param array $options Options for the request
|
* @param array $options Options for the request
|
||||||
* @return void $options is updated with the results
|
* @return void
|
||||||
*
|
*
|
||||||
* @throws \WpOrg\Requests\Exception When the $url is not an http(s) URL.
|
* @throws \WpOrg\Requests\Exception When the $url is not an http(s) URL.
|
||||||
*/
|
*/
|
||||||
@ -824,9 +826,11 @@ class Requests {
|
|||||||
* Internal use only. Converts a raw HTTP response to a \WpOrg\Requests\Response
|
* Internal use only. Converts a raw HTTP response to a \WpOrg\Requests\Response
|
||||||
* while still executing a multiple request.
|
* while still executing a multiple request.
|
||||||
*
|
*
|
||||||
|
* `$response` is either set to a \WpOrg\Requests\Response instance, or a \WpOrg\Requests\Exception object
|
||||||
|
*
|
||||||
* @param string $response Full response text including headers and body (will be overwritten with Response instance)
|
* @param string $response Full response text including headers and body (will be overwritten with Response instance)
|
||||||
* @param array $request Request data as passed into {@see \WpOrg\Requests\Requests::request_multiple()}
|
* @param array $request Request data as passed into {@see \WpOrg\Requests\Requests::request_multiple()}
|
||||||
* @return void `$response` is either set to a \WpOrg\Requests\Response instance, or a \WpOrg\Requests\Exception object
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function parse_multiple(&$response, $request) {
|
public static function parse_multiple(&$response, $request) {
|
||||||
try {
|
try {
|
||||||
|
20
includes/vendor/rmccue/requests/src/Response.php
generated
vendored
20
includes/vendor/rmccue/requests/src/Response.php
generated
vendored
@ -137,16 +137,16 @@ class Response {
|
|||||||
*
|
*
|
||||||
* @link https://php.net/json-decode
|
* @link https://php.net/json-decode
|
||||||
*
|
*
|
||||||
* @param ?bool $associative Optional. When `true`, JSON objects will be returned as associative arrays;
|
* @param bool|null $associative Optional. When `true`, JSON objects will be returned as associative arrays;
|
||||||
* When `false`, JSON objects will be returned as objects.
|
* When `false`, JSON objects will be returned as objects.
|
||||||
* When `null`, JSON objects will be returned as associative arrays
|
* When `null`, JSON objects will be returned as associative arrays
|
||||||
* or objects depending on whether `JSON_OBJECT_AS_ARRAY` is set in the flags.
|
* or objects depending on whether `JSON_OBJECT_AS_ARRAY` is set in the flags.
|
||||||
* Defaults to `true` (in contrast to the PHP native default of `null`).
|
* Defaults to `true` (in contrast to the PHP native default of `null`).
|
||||||
* @param int $depth Optional. Maximum nesting depth of the structure being decoded.
|
* @param int $depth Optional. Maximum nesting depth of the structure being decoded.
|
||||||
* Defaults to `512`.
|
* Defaults to `512`.
|
||||||
* @param int $options Optional. Bitmask of JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE,
|
* @param int $options Optional. Bitmask of JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE,
|
||||||
* JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR.
|
* JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR.
|
||||||
* Defaults to `0` (no options set).
|
* Defaults to `0` (no options set).
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*
|
*
|
||||||
|
9
includes/vendor/rmccue/requests/src/Response/Headers.php
generated
vendored
9
includes/vendor/rmccue/requests/src/Response/Headers.php
generated
vendored
@ -27,7 +27,7 @@ class Headers extends CaseInsensitiveDictionary {
|
|||||||
* Avoid using this where commas may be used unquoted in values, such as
|
* Avoid using this where commas may be used unquoted in values, such as
|
||||||
* Set-Cookie headers.
|
* Set-Cookie headers.
|
||||||
*
|
*
|
||||||
* @param string $offset
|
* @param string $offset Name of the header to retrieve.
|
||||||
* @return string|null Header value
|
* @return string|null Header value
|
||||||
*/
|
*/
|
||||||
public function offsetGet($offset) {
|
public function offsetGet($offset) {
|
||||||
@ -69,7 +69,7 @@ class Headers extends CaseInsensitiveDictionary {
|
|||||||
/**
|
/**
|
||||||
* Get all values for a given header
|
* Get all values for a given header
|
||||||
*
|
*
|
||||||
* @param string $offset
|
* @param string $offset Name of the header to retrieve.
|
||||||
* @return array|null Header values
|
* @return array|null Header values
|
||||||
*
|
*
|
||||||
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not valid as an array key.
|
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not valid as an array key.
|
||||||
@ -79,7 +79,10 @@ class Headers extends CaseInsensitiveDictionary {
|
|||||||
throw InvalidArgument::create(1, '$offset', 'string|int', gettype($offset));
|
throw InvalidArgument::create(1, '$offset', 'string|int', gettype($offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
$offset = strtolower($offset);
|
if (is_string($offset)) {
|
||||||
|
$offset = strtolower($offset);
|
||||||
|
}
|
||||||
|
|
||||||
if (!isset($this->data[$offset])) {
|
if (!isset($this->data[$offset])) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
4
includes/vendor/rmccue/requests/src/Transport/Curl.php
generated
vendored
4
includes/vendor/rmccue/requests/src/Transport/Curl.php
generated
vendored
@ -465,7 +465,7 @@ final class Curl implements Transport {
|
|||||||
* @param string $response Response data from the body
|
* @param string $response Response data from the body
|
||||||
* @param array $options Request options
|
* @param array $options Request options
|
||||||
* @return string|false HTTP response data including headers. False if non-blocking.
|
* @return string|false HTTP response data including headers. False if non-blocking.
|
||||||
* @throws \WpOrg\Requests\Exception
|
* @throws \WpOrg\Requests\Exception If the request resulted in a cURL error.
|
||||||
*/
|
*/
|
||||||
public function process_response($response, $options) {
|
public function process_response($response, $options) {
|
||||||
if ($options['blocking'] === false) {
|
if ($options['blocking'] === false) {
|
||||||
@ -561,7 +561,7 @@ final class Curl implements Transport {
|
|||||||
/**
|
/**
|
||||||
* Format a URL given GET data
|
* Format a URL given GET data
|
||||||
*
|
*
|
||||||
* @param string $url
|
* @param string $url Original URL.
|
||||||
* @param array|object $data Data to build query using, see {@link https://www.php.net/http_build_query}
|
* @param array|object $data Data to build query using, see {@link https://www.php.net/http_build_query}
|
||||||
* @return string URL with data
|
* @return string URL with data
|
||||||
*/
|
*/
|
||||||
|
17
includes/vendor/rmccue/requests/src/Transport/Fsockopen.php
generated
vendored
17
includes/vendor/rmccue/requests/src/Transport/Fsockopen.php
generated
vendored
@ -51,6 +51,11 @@ final class Fsockopen implements Transport {
|
|||||||
*/
|
*/
|
||||||
private $max_bytes = false;
|
private $max_bytes = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cache for received connection errors.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
private $connect_error = '';
|
private $connect_error = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -139,7 +144,15 @@ final class Fsockopen implements Transport {
|
|||||||
$verifyname = false;
|
$verifyname = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
stream_context_set_option($context, ['ssl' => $context_options]);
|
// Handle the PHP 8.4 deprecation (PHP 9.0 removal) of the function signature we use for stream_context_set_option().
|
||||||
|
// Ref: https://wiki.php.net/rfc/deprecate_functions_with_overloaded_signatures#stream_context_set_option
|
||||||
|
if (function_exists('stream_context_set_options')) {
|
||||||
|
// PHP 8.3+.
|
||||||
|
stream_context_set_options($context, ['ssl' => $context_options]);
|
||||||
|
} else {
|
||||||
|
// PHP < 8.3.
|
||||||
|
stream_context_set_option($context, ['ssl' => $context_options]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$remote_socket = 'tcp://' . $host;
|
$remote_socket = 'tcp://' . $host;
|
||||||
}
|
}
|
||||||
@ -405,7 +418,7 @@ final class Fsockopen implements Transport {
|
|||||||
/**
|
/**
|
||||||
* Format a URL given GET data
|
* Format a URL given GET data
|
||||||
*
|
*
|
||||||
* @param array $url_parts
|
* @param array $url_parts Array of URL parts as received from {@link https://www.php.net/parse_url}
|
||||||
* @param array|object $data Data to build query using, see {@link https://www.php.net/http_build_query}
|
* @param array|object $data Data to build query using, see {@link https://www.php.net/http_build_query}
|
||||||
* @return string URL with data
|
* @return string URL with data
|
||||||
*/
|
*/
|
||||||
|
2
includes/vendor/rmccue/requests/src/Utility/CaseInsensitiveDictionary.php
generated
vendored
2
includes/vendor/rmccue/requests/src/Utility/CaseInsensitiveDictionary.php
generated
vendored
@ -95,7 +95,7 @@ class CaseInsensitiveDictionary implements ArrayAccess, IteratorAggregate {
|
|||||||
/**
|
/**
|
||||||
* Unset the given header
|
* Unset the given header
|
||||||
*
|
*
|
||||||
* @param string $offset
|
* @param string $offset The key for the item to unset.
|
||||||
*/
|
*/
|
||||||
#[ReturnTypeWillChange]
|
#[ReturnTypeWillChange]
|
||||||
public function offsetUnset($offset) {
|
public function offsetUnset($offset) {
|
||||||
|
21
includes/vendor/rmccue/requests/src/Utility/FilteredIterator.php
generated
vendored
21
includes/vendor/rmccue/requests/src/Utility/FilteredIterator.php
generated
vendored
@ -28,7 +28,7 @@ final class FilteredIterator extends ArrayIterator {
|
|||||||
/**
|
/**
|
||||||
* Create a new iterator
|
* Create a new iterator
|
||||||
*
|
*
|
||||||
* @param array $data
|
* @param array $data The array or object to be iterated on.
|
||||||
* @param callable $callback Callback to be called on each value
|
* @param callable $callback Callback to be called on each value
|
||||||
*
|
*
|
||||||
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $data argument is not iterable.
|
* @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $data argument is not iterable.
|
||||||
@ -46,14 +46,25 @@ final class FilteredIterator extends ArrayIterator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* Prevent unserialization of the object for security reasons.
|
||||||
*
|
*
|
||||||
* @phpcs:disable PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__unserializeFound
|
* @phpcs:disable PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__unserializeFound
|
||||||
|
*
|
||||||
|
* @param array $data Restored array of data originally serialized.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
#[ReturnTypeWillChange]
|
#[ReturnTypeWillChange]
|
||||||
public function __unserialize($data) {}
|
public function __unserialize($data) {}
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform reinitialization tasks.
|
||||||
|
*
|
||||||
|
* Prevents a callback from being injected during unserialization of an object.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
public function __wakeup() {
|
public function __wakeup() {
|
||||||
unset($this->callback);
|
unset($this->callback);
|
||||||
}
|
}
|
||||||
@ -75,7 +86,11 @@ final class FilteredIterator extends ArrayIterator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* Prevent creating a PHP value from a stored representation of the object for security reasons.
|
||||||
|
*
|
||||||
|
* @param string $data The serialized string.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
#[ReturnTypeWillChange]
|
#[ReturnTypeWillChange]
|
||||||
public function unserialize($data) {}
|
public function unserialize($data) {}
|
||||||
|
52
includes/vendor/symfony/polyfill-intl-idn/Idn.php
generated
vendored
52
includes/vendor/symfony/polyfill-intl-idn/Idn.php
generated
vendored
@ -11,8 +11,6 @@
|
|||||||
|
|
||||||
namespace Symfony\Polyfill\Intl\Idn;
|
namespace Symfony\Polyfill\Intl\Idn;
|
||||||
|
|
||||||
use Exception;
|
|
||||||
use Normalizer;
|
|
||||||
use Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges;
|
use Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges;
|
||||||
use Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex;
|
use Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex;
|
||||||
|
|
||||||
@ -147,7 +145,7 @@ final class Idn
|
|||||||
*/
|
*/
|
||||||
public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = [])
|
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) {
|
if (self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||||
@trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
@trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,7 +165,7 @@ final class Idn
|
|||||||
if (1 === preg_match('/[^\x00-\x7F]/', $label)) {
|
if (1 === preg_match('/[^\x00-\x7F]/', $label)) {
|
||||||
try {
|
try {
|
||||||
$label = 'xn--'.self::punycodeEncode($label);
|
$label = 'xn--'.self::punycodeEncode($label);
|
||||||
} catch (Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$info->errors |= self::ERROR_PUNYCODE;
|
$info->errors |= self::ERROR_PUNYCODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,7 +198,7 @@ final class Idn
|
|||||||
*/
|
*/
|
||||||
public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = [])
|
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) {
|
if (self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||||
@trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
@trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,10 +280,6 @@ final class Idn
|
|||||||
|
|
||||||
switch ($data['status']) {
|
switch ($data['status']) {
|
||||||
case 'disallowed':
|
case 'disallowed':
|
||||||
$info->errors |= self::ERROR_DISALLOWED;
|
|
||||||
|
|
||||||
// no break.
|
|
||||||
|
|
||||||
case 'valid':
|
case 'valid':
|
||||||
$str .= mb_chr($codePoint, 'utf-8');
|
$str .= mb_chr($codePoint, 'utf-8');
|
||||||
|
|
||||||
@ -296,7 +290,7 @@ final class Idn
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'mapped':
|
case 'mapped':
|
||||||
$str .= $data['mapping'];
|
$str .= $transitional && 0x1E9E === $codePoint ? 'ss' : $data['mapping'];
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -335,8 +329,8 @@ final class Idn
|
|||||||
$domain = self::mapCodePoints($domain, $options, $info);
|
$domain = self::mapCodePoints($domain, $options, $info);
|
||||||
|
|
||||||
// Step 2. Normalize the domain name string to Unicode Normalization Form C.
|
// Step 2. Normalize the domain name string to Unicode Normalization Form C.
|
||||||
if (!Normalizer::isNormalized($domain, Normalizer::FORM_C)) {
|
if (!\Normalizer::isNormalized($domain, \Normalizer::FORM_C)) {
|
||||||
$domain = Normalizer::normalize($domain, Normalizer::FORM_C);
|
$domain = \Normalizer::normalize($domain, \Normalizer::FORM_C);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step 3. Break the string into labels at U+002E (.) FULL STOP.
|
// Step 3. Break the string into labels at U+002E (.) FULL STOP.
|
||||||
@ -348,9 +342,21 @@ final class Idn
|
|||||||
$validationOptions = $options;
|
$validationOptions = $options;
|
||||||
|
|
||||||
if ('xn--' === substr($label, 0, 4)) {
|
if ('xn--' === substr($label, 0, 4)) {
|
||||||
|
// Step 4.1. If the label contains any non-ASCII code point (i.e., a code point greater than U+007F),
|
||||||
|
// record that there was an error, and continue with the next label.
|
||||||
|
if (preg_match('/[^\x00-\x7F]/', $label)) {
|
||||||
|
$info->errors |= self::ERROR_PUNYCODE;
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 4.2. Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492]. If
|
||||||
|
// that conversion fails, record that there was an error, and continue
|
||||||
|
// with the next label. Otherwise replace the original label in the string by the results of the
|
||||||
|
// conversion.
|
||||||
try {
|
try {
|
||||||
$label = self::punycodeDecode(substr($label, 4));
|
$label = self::punycodeDecode(substr($label, 4));
|
||||||
} catch (Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$info->errors |= self::ERROR_PUNYCODE;
|
$info->errors |= self::ERROR_PUNYCODE;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
@ -496,7 +502,7 @@ final class Idn
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Step 1. The label must be in Unicode Normalization Form C.
|
// Step 1. The label must be in Unicode Normalization Form C.
|
||||||
if (!Normalizer::isNormalized($label, Normalizer::FORM_C)) {
|
if (!\Normalizer::isNormalized($label, \Normalizer::FORM_C)) {
|
||||||
$info->errors |= self::ERROR_INVALID_ACE_LABEL;
|
$info->errors |= self::ERROR_INVALID_ACE_LABEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -518,6 +524,8 @@ final class Idn
|
|||||||
if ('-' === substr($label, -1, 1)) {
|
if ('-' === substr($label, -1, 1)) {
|
||||||
$info->errors |= self::ERROR_TRAILING_HYPHEN;
|
$info->errors |= self::ERROR_TRAILING_HYPHEN;
|
||||||
}
|
}
|
||||||
|
} elseif ('xn--' === substr($label, 0, 4)) {
|
||||||
|
$info->errors |= self::ERROR_PUNYCODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step 4. The label must not contain a U+002E (.) FULL STOP.
|
// Step 4. The label must not contain a U+002E (.) FULL STOP.
|
||||||
@ -583,7 +591,7 @@ final class Idn
|
|||||||
|
|
||||||
for ($j = 0; $j < $b; ++$j) {
|
for ($j = 0; $j < $b; ++$j) {
|
||||||
if ($bytes[$j] > 0x7F) {
|
if ($bytes[$j] > 0x7F) {
|
||||||
throw new Exception('Invalid input');
|
throw new \Exception('Invalid input');
|
||||||
}
|
}
|
||||||
|
|
||||||
$output[$out++] = $input[$j];
|
$output[$out++] = $input[$j];
|
||||||
@ -599,17 +607,17 @@ final class Idn
|
|||||||
|
|
||||||
for ($k = self::BASE; /* no condition */; $k += self::BASE) {
|
for ($k = self::BASE; /* no condition */; $k += self::BASE) {
|
||||||
if ($in >= $inputLength) {
|
if ($in >= $inputLength) {
|
||||||
throw new Exception('Invalid input');
|
throw new \Exception('Invalid input');
|
||||||
}
|
}
|
||||||
|
|
||||||
$digit = self::$basicToDigit[$bytes[$in++] & 0xFF];
|
$digit = self::$basicToDigit[$bytes[$in++] & 0xFF];
|
||||||
|
|
||||||
if ($digit < 0) {
|
if ($digit < 0) {
|
||||||
throw new Exception('Invalid input');
|
throw new \Exception('Invalid input');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($digit > intdiv(self::MAX_INT - $i, $w)) {
|
if ($digit > intdiv(self::MAX_INT - $i, $w)) {
|
||||||
throw new Exception('Integer overflow');
|
throw new \Exception('Integer overflow');
|
||||||
}
|
}
|
||||||
|
|
||||||
$i += $digit * $w;
|
$i += $digit * $w;
|
||||||
@ -629,7 +637,7 @@ final class Idn
|
|||||||
$baseMinusT = self::BASE - $t;
|
$baseMinusT = self::BASE - $t;
|
||||||
|
|
||||||
if ($w > intdiv(self::MAX_INT, $baseMinusT)) {
|
if ($w > intdiv(self::MAX_INT, $baseMinusT)) {
|
||||||
throw new Exception('Integer overflow');
|
throw new \Exception('Integer overflow');
|
||||||
}
|
}
|
||||||
|
|
||||||
$w *= $baseMinusT;
|
$w *= $baseMinusT;
|
||||||
@ -639,7 +647,7 @@ final class Idn
|
|||||||
$bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi);
|
$bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi);
|
||||||
|
|
||||||
if (intdiv($i, $outPlusOne) > self::MAX_INT - $n) {
|
if (intdiv($i, $outPlusOne) > self::MAX_INT - $n) {
|
||||||
throw new Exception('Integer overflow');
|
throw new \Exception('Integer overflow');
|
||||||
}
|
}
|
||||||
|
|
||||||
$n += intdiv($i, $outPlusOne);
|
$n += intdiv($i, $outPlusOne);
|
||||||
@ -694,7 +702,7 @@ final class Idn
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($m - $n > intdiv(self::MAX_INT - $delta, $h + 1)) {
|
if ($m - $n > intdiv(self::MAX_INT - $delta, $h + 1)) {
|
||||||
throw new Exception('Integer overflow');
|
throw new \Exception('Integer overflow');
|
||||||
}
|
}
|
||||||
|
|
||||||
$delta += ($m - $n) * ($h + 1);
|
$delta += ($m - $n) * ($h + 1);
|
||||||
@ -702,7 +710,7 @@ final class Idn
|
|||||||
|
|
||||||
foreach ($iter as $codePoint) {
|
foreach ($iter as $codePoint) {
|
||||||
if ($codePoint < $n && 0 === ++$delta) {
|
if ($codePoint < $n && 0 === ++$delta) {
|
||||||
throw new Exception('Integer overflow');
|
throw new \Exception('Integer overflow');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($codePoint === $n) {
|
if ($codePoint === $n) {
|
||||||
|
2
includes/vendor/symfony/polyfill-intl-idn/LICENSE
generated
vendored
2
includes/vendor/symfony/polyfill-intl-idn/LICENSE
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2018-2019 Fabien Potencier and Trevor Rowbotham <trevor.rowbotham@pm.me>
|
Copyright (c) 2018-present Fabien Potencier and Trevor Rowbotham <trevor.rowbotham@pm.me>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
9
includes/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php
generated
vendored
9
includes/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php
generated
vendored
@ -1,5 +1,14 @@
|
|||||||
<?php
|
<?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.
|
||||||
|
*/
|
||||||
|
|
||||||
namespace Symfony\Polyfill\Intl\Idn\Resources\unidata;
|
namespace Symfony\Polyfill\Intl\Idn\Resources\unidata;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
9
includes/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php
generated
vendored
9
includes/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php
generated
vendored
@ -1,5 +1,14 @@
|
|||||||
<?php
|
<?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.
|
||||||
|
*/
|
||||||
|
|
||||||
namespace Symfony\Polyfill\Intl\Idn\Resources\unidata;
|
namespace Symfony\Polyfill\Intl\Idn\Resources\unidata;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
8
includes/vendor/symfony/polyfill-intl-idn/composer.json
generated
vendored
8
includes/vendor/symfony/polyfill-intl-idn/composer.json
generated
vendored
@ -20,9 +20,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.1",
|
"php": ">=7.2",
|
||||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
"symfony/polyfill-intl-normalizer": "^1.10"
|
||||||
"symfony/polyfill-php72": "^1.10"
|
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
|
"psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
|
||||||
@ -33,9 +32,6 @@
|
|||||||
},
|
},
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
|
||||||
"dev-main": "1.27-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"url": "https://github.com/symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
|
2
includes/vendor/symfony/polyfill-intl-normalizer/LICENSE
generated
vendored
2
includes/vendor/symfony/polyfill-intl-normalizer/LICENSE
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2015-2019 Fabien Potencier
|
Copyright (c) 2015-present Fabien Potencier
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
5
includes/vendor/symfony/polyfill-intl-normalizer/composer.json
generated
vendored
5
includes/vendor/symfony/polyfill-intl-normalizer/composer.json
generated
vendored
@ -16,7 +16,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.1"
|
"php": ">=7.2"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" },
|
"psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" },
|
||||||
@ -28,9 +28,6 @@
|
|||||||
},
|
},
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
|
||||||
"dev-main": "1.27-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"url": "https://github.com/symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
|
2
includes/vendor/symfony/polyfill-mbstring/LICENSE
generated
vendored
2
includes/vendor/symfony/polyfill-mbstring/LICENSE
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2015-2019 Fabien Potencier
|
Copyright (c) 2015-present Fabien Potencier
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
185
includes/vendor/symfony/polyfill-mbstring/Mbstring.php
generated
vendored
185
includes/vendor/symfony/polyfill-mbstring/Mbstring.php
generated
vendored
@ -48,6 +48,11 @@ namespace Symfony\Polyfill\Mbstring;
|
|||||||
* - mb_strstr - Finds first occurrence of a string within another
|
* - mb_strstr - Finds first occurrence of a string within another
|
||||||
* - mb_strwidth - Return width of string
|
* - mb_strwidth - Return width of string
|
||||||
* - mb_substr_count - Count the number of substring occurrences
|
* - mb_substr_count - Count the number of substring occurrences
|
||||||
|
* - mb_ucfirst - Make a string's first character uppercase
|
||||||
|
* - mb_lcfirst - Make a string's first character lowercase
|
||||||
|
* - mb_trim - Strip whitespace (or other characters) from the beginning and end of a string
|
||||||
|
* - mb_ltrim - Strip whitespace (or other characters) from the beginning of a string
|
||||||
|
* - mb_rtrim - Strip whitespace (or other characters) from the end of a string
|
||||||
*
|
*
|
||||||
* Not implemented:
|
* Not implemented:
|
||||||
* - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
|
* - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
|
||||||
@ -69,7 +74,7 @@ final class Mbstring
|
|||||||
{
|
{
|
||||||
public const MB_CASE_FOLD = \PHP_INT_MAX;
|
public const MB_CASE_FOLD = \PHP_INT_MAX;
|
||||||
|
|
||||||
private const CASE_FOLD = [
|
private const SIMPLE_CASE_FOLD = [
|
||||||
['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"],
|
['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"],
|
||||||
['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'],
|
['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'],
|
||||||
];
|
];
|
||||||
@ -80,6 +85,15 @@ final class Mbstring
|
|||||||
|
|
||||||
public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
|
public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
|
||||||
{
|
{
|
||||||
|
if (\is_array($s)) {
|
||||||
|
$r = [];
|
||||||
|
foreach ($s as $str) {
|
||||||
|
$r[] = self::mb_convert_encoding($str, $toEncoding, $fromEncoding);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $r;
|
||||||
|
}
|
||||||
|
|
||||||
if (\is_array($fromEncoding) || (null !== $fromEncoding && false !== strpos($fromEncoding, ','))) {
|
if (\is_array($fromEncoding) || (null !== $fromEncoding && false !== strpos($fromEncoding, ','))) {
|
||||||
$fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
|
$fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
|
||||||
} else {
|
} else {
|
||||||
@ -301,7 +315,11 @@ final class Mbstring
|
|||||||
$map = $upper;
|
$map = $upper;
|
||||||
} else {
|
} else {
|
||||||
if (self::MB_CASE_FOLD === $mode) {
|
if (self::MB_CASE_FOLD === $mode) {
|
||||||
$s = str_replace(self::CASE_FOLD[0], self::CASE_FOLD[1], $s);
|
static $caseFolding = null;
|
||||||
|
if (null === $caseFolding) {
|
||||||
|
$caseFolding = self::getData('caseFolding');
|
||||||
|
}
|
||||||
|
$s = strtr($s, $caseFolding);
|
||||||
}
|
}
|
||||||
|
|
||||||
static $lower = null;
|
static $lower = null;
|
||||||
@ -413,7 +431,20 @@ final class Mbstring
|
|||||||
$encoding = self::$internalEncoding;
|
$encoding = self::$internalEncoding;
|
||||||
}
|
}
|
||||||
|
|
||||||
return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var);
|
if (!\is_array($var)) {
|
||||||
|
return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($var as $key => $value) {
|
||||||
|
if (!self::mb_check_encoding($key, $encoding)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!self::mb_check_encoding($value, $encoding)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
|
public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
|
||||||
@ -638,8 +669,10 @@ final class Mbstring
|
|||||||
|
|
||||||
public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
|
public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
|
||||||
{
|
{
|
||||||
$haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
|
[$haystack, $needle] = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], [
|
||||||
$needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
|
self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding),
|
||||||
|
self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding),
|
||||||
|
]);
|
||||||
|
|
||||||
return self::mb_strpos($haystack, $needle, $offset, $encoding);
|
return self::mb_strpos($haystack, $needle, $offset, $encoding);
|
||||||
}
|
}
|
||||||
@ -674,8 +707,11 @@ final class Mbstring
|
|||||||
|
|
||||||
public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)
|
public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)
|
||||||
{
|
{
|
||||||
$haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
|
$haystack = self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding);
|
||||||
$needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
|
$needle = self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding);
|
||||||
|
|
||||||
|
$haystack = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $haystack);
|
||||||
|
$needle = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $needle);
|
||||||
|
|
||||||
return self::mb_strrpos($haystack, $needle, $offset, $encoding);
|
return self::mb_strrpos($haystack, $needle, $offset, $encoding);
|
||||||
}
|
}
|
||||||
@ -798,6 +834,69 @@ final class Mbstring
|
|||||||
return $code;
|
return $code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null): string
|
||||||
|
{
|
||||||
|
if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) {
|
||||||
|
throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null === $encoding) {
|
||||||
|
$encoding = self::mb_internal_encoding();
|
||||||
|
} else {
|
||||||
|
self::assertEncoding($encoding, 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self::mb_strlen($pad_string, $encoding) <= 0) {
|
||||||
|
throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string');
|
||||||
|
}
|
||||||
|
|
||||||
|
$paddingRequired = $length - self::mb_strlen($string, $encoding);
|
||||||
|
|
||||||
|
if ($paddingRequired < 1) {
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($pad_type) {
|
||||||
|
case \STR_PAD_LEFT:
|
||||||
|
return self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding).$string;
|
||||||
|
case \STR_PAD_RIGHT:
|
||||||
|
return $string.self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding);
|
||||||
|
default:
|
||||||
|
$leftPaddingLength = floor($paddingRequired / 2);
|
||||||
|
$rightPaddingLength = $paddingRequired - $leftPaddingLength;
|
||||||
|
|
||||||
|
return self::mb_substr(str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding).$string.self::mb_substr(str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function mb_ucfirst(string $string, ?string $encoding = null): string
|
||||||
|
{
|
||||||
|
if (null === $encoding) {
|
||||||
|
$encoding = self::mb_internal_encoding();
|
||||||
|
} else {
|
||||||
|
self::assertEncoding($encoding, 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given');
|
||||||
|
}
|
||||||
|
|
||||||
|
$firstChar = mb_substr($string, 0, 1, $encoding);
|
||||||
|
$firstChar = mb_convert_case($firstChar, \MB_CASE_TITLE, $encoding);
|
||||||
|
|
||||||
|
return $firstChar.mb_substr($string, 1, null, $encoding);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function mb_lcfirst(string $string, ?string $encoding = null): string
|
||||||
|
{
|
||||||
|
if (null === $encoding) {
|
||||||
|
$encoding = self::mb_internal_encoding();
|
||||||
|
} else {
|
||||||
|
self::assertEncoding($encoding, 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given');
|
||||||
|
}
|
||||||
|
|
||||||
|
$firstChar = mb_substr($string, 0, 1, $encoding);
|
||||||
|
$firstChar = mb_convert_case($firstChar, \MB_CASE_LOWER, $encoding);
|
||||||
|
|
||||||
|
return $firstChar.mb_substr($string, 1, null, $encoding);
|
||||||
|
}
|
||||||
|
|
||||||
private static function getSubpart($pos, $part, $haystack, $encoding)
|
private static function getSubpart($pos, $part, $haystack, $encoding)
|
||||||
{
|
{
|
||||||
if (false === $pos) {
|
if (false === $pos) {
|
||||||
@ -871,4 +970,76 @@ final class Mbstring
|
|||||||
|
|
||||||
return $encoding;
|
return $encoding;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function mb_trim(string $string, ?string $characters = null, ?string $encoding = null): string
|
||||||
|
{
|
||||||
|
return self::mb_internal_trim('{^[%s]+|[%1$s]+$}Du', $string, $characters, $encoding, __FUNCTION__);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null): string
|
||||||
|
{
|
||||||
|
return self::mb_internal_trim('{^[%s]+}Du', $string, $characters, $encoding, __FUNCTION__);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string
|
||||||
|
{
|
||||||
|
return self::mb_internal_trim('{[%s]+$}D', $string, $characters, $encoding, __FUNCTION__);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function mb_internal_trim(string $regex, string $string, ?string $characters, ?string $encoding, string $function): string
|
||||||
|
{
|
||||||
|
if (null === $encoding) {
|
||||||
|
$encoding = self::mb_internal_encoding();
|
||||||
|
} else {
|
||||||
|
self::assertEncoding($encoding, $function.'(): Argument #3 ($encoding) must be a valid encoding, "%s" given');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('' === $characters) {
|
||||||
|
return null === $encoding ? $string : self::mb_convert_encoding($string, $encoding);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('UTF-8' === $encoding) {
|
||||||
|
$encoding = null;
|
||||||
|
if (!preg_match('//u', $string)) {
|
||||||
|
$string = @iconv('UTF-8', 'UTF-8//IGNORE', $string);
|
||||||
|
}
|
||||||
|
if (null !== $characters && !preg_match('//u', $characters)) {
|
||||||
|
$characters = @iconv('UTF-8', 'UTF-8//IGNORE', $characters);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$string = iconv($encoding, 'UTF-8//IGNORE', $string);
|
||||||
|
|
||||||
|
if (null !== $characters) {
|
||||||
|
$characters = iconv($encoding, 'UTF-8//IGNORE', $characters);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null === $characters) {
|
||||||
|
$characters = "\\0 \f\n\r\t\v\u{00A0}\u{1680}\u{2000}\u{2001}\u{2002}\u{2003}\u{2004}\u{2005}\u{2006}\u{2007}\u{2008}\u{2009}\u{200A}\u{2028}\u{2029}\u{202F}\u{205F}\u{3000}\u{0085}\u{180E}";
|
||||||
|
} else {
|
||||||
|
$characters = preg_quote($characters);
|
||||||
|
}
|
||||||
|
|
||||||
|
$string = preg_replace(sprintf($regex, $characters), '', $string);
|
||||||
|
|
||||||
|
if (null === $encoding) {
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
return iconv('UTF-8', $encoding.'//IGNORE', $string);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function assertEncoding(string $encoding, string $errorFormat): void
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$validEncoding = @self::mb_check_encoding('', $encoding);
|
||||||
|
} catch (\ValueError $e) {
|
||||||
|
throw new \ValueError(sprintf($errorFormat, $encoding));
|
||||||
|
}
|
||||||
|
|
||||||
|
// BC for PHP 7.3 and lower
|
||||||
|
if (!$validEncoding) {
|
||||||
|
throw new \ValueError(sprintf($errorFormat, $encoding));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
119
includes/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php
generated
vendored
Normal file
119
includes/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php
generated
vendored
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'İ' => 'i̇',
|
||||||
|
'µ' => 'μ',
|
||||||
|
'ſ' => 's',
|
||||||
|
'ͅ' => 'ι',
|
||||||
|
'ς' => 'σ',
|
||||||
|
'ϐ' => 'β',
|
||||||
|
'ϑ' => 'θ',
|
||||||
|
'ϕ' => 'φ',
|
||||||
|
'ϖ' => 'π',
|
||||||
|
'ϰ' => 'κ',
|
||||||
|
'ϱ' => 'ρ',
|
||||||
|
'ϵ' => 'ε',
|
||||||
|
'ẛ' => 'ṡ',
|
||||||
|
'ι' => 'ι',
|
||||||
|
'ß' => 'ss',
|
||||||
|
'ʼn' => 'ʼn',
|
||||||
|
'ǰ' => 'ǰ',
|
||||||
|
'ΐ' => 'ΐ',
|
||||||
|
'ΰ' => 'ΰ',
|
||||||
|
'և' => 'եւ',
|
||||||
|
'ẖ' => 'ẖ',
|
||||||
|
'ẗ' => 'ẗ',
|
||||||
|
'ẘ' => 'ẘ',
|
||||||
|
'ẙ' => 'ẙ',
|
||||||
|
'ẚ' => 'aʾ',
|
||||||
|
'ẞ' => 'ss',
|
||||||
|
'ὐ' => 'ὐ',
|
||||||
|
'ὒ' => 'ὒ',
|
||||||
|
'ὔ' => 'ὔ',
|
||||||
|
'ὖ' => 'ὖ',
|
||||||
|
'ᾀ' => 'ἀι',
|
||||||
|
'ᾁ' => 'ἁι',
|
||||||
|
'ᾂ' => 'ἂι',
|
||||||
|
'ᾃ' => 'ἃι',
|
||||||
|
'ᾄ' => 'ἄι',
|
||||||
|
'ᾅ' => 'ἅι',
|
||||||
|
'ᾆ' => 'ἆι',
|
||||||
|
'ᾇ' => 'ἇι',
|
||||||
|
'ᾈ' => 'ἀι',
|
||||||
|
'ᾉ' => 'ἁι',
|
||||||
|
'ᾊ' => 'ἂι',
|
||||||
|
'ᾋ' => 'ἃι',
|
||||||
|
'ᾌ' => 'ἄι',
|
||||||
|
'ᾍ' => 'ἅι',
|
||||||
|
'ᾎ' => 'ἆι',
|
||||||
|
'ᾏ' => 'ἇι',
|
||||||
|
'ᾐ' => 'ἠι',
|
||||||
|
'ᾑ' => 'ἡι',
|
||||||
|
'ᾒ' => 'ἢι',
|
||||||
|
'ᾓ' => 'ἣι',
|
||||||
|
'ᾔ' => 'ἤι',
|
||||||
|
'ᾕ' => 'ἥι',
|
||||||
|
'ᾖ' => 'ἦι',
|
||||||
|
'ᾗ' => 'ἧι',
|
||||||
|
'ᾘ' => 'ἠι',
|
||||||
|
'ᾙ' => 'ἡι',
|
||||||
|
'ᾚ' => 'ἢι',
|
||||||
|
'ᾛ' => 'ἣι',
|
||||||
|
'ᾜ' => 'ἤι',
|
||||||
|
'ᾝ' => 'ἥι',
|
||||||
|
'ᾞ' => 'ἦι',
|
||||||
|
'ᾟ' => 'ἧι',
|
||||||
|
'ᾠ' => 'ὠι',
|
||||||
|
'ᾡ' => 'ὡι',
|
||||||
|
'ᾢ' => 'ὢι',
|
||||||
|
'ᾣ' => 'ὣι',
|
||||||
|
'ᾤ' => 'ὤι',
|
||||||
|
'ᾥ' => 'ὥι',
|
||||||
|
'ᾦ' => 'ὦι',
|
||||||
|
'ᾧ' => 'ὧι',
|
||||||
|
'ᾨ' => 'ὠι',
|
||||||
|
'ᾩ' => 'ὡι',
|
||||||
|
'ᾪ' => 'ὢι',
|
||||||
|
'ᾫ' => 'ὣι',
|
||||||
|
'ᾬ' => 'ὤι',
|
||||||
|
'ᾭ' => 'ὥι',
|
||||||
|
'ᾮ' => 'ὦι',
|
||||||
|
'ᾯ' => 'ὧι',
|
||||||
|
'ᾲ' => 'ὰι',
|
||||||
|
'ᾳ' => 'αι',
|
||||||
|
'ᾴ' => 'άι',
|
||||||
|
'ᾶ' => 'ᾶ',
|
||||||
|
'ᾷ' => 'ᾶι',
|
||||||
|
'ᾼ' => 'αι',
|
||||||
|
'ῂ' => 'ὴι',
|
||||||
|
'ῃ' => 'ηι',
|
||||||
|
'ῄ' => 'ήι',
|
||||||
|
'ῆ' => 'ῆ',
|
||||||
|
'ῇ' => 'ῆι',
|
||||||
|
'ῌ' => 'ηι',
|
||||||
|
'ῒ' => 'ῒ',
|
||||||
|
'ῖ' => 'ῖ',
|
||||||
|
'ῗ' => 'ῗ',
|
||||||
|
'ῢ' => 'ῢ',
|
||||||
|
'ῤ' => 'ῤ',
|
||||||
|
'ῦ' => 'ῦ',
|
||||||
|
'ῧ' => 'ῧ',
|
||||||
|
'ῲ' => 'ὼι',
|
||||||
|
'ῳ' => 'ωι',
|
||||||
|
'ῴ' => 'ώι',
|
||||||
|
'ῶ' => 'ῶ',
|
||||||
|
'ῷ' => 'ῶι',
|
||||||
|
'ῼ' => 'ωι',
|
||||||
|
'ff' => 'ff',
|
||||||
|
'fi' => 'fi',
|
||||||
|
'fl' => 'fl',
|
||||||
|
'ffi' => 'ffi',
|
||||||
|
'ffl' => 'ffl',
|
||||||
|
'ſt' => 'st',
|
||||||
|
'st' => 'st',
|
||||||
|
'ﬓ' => 'մն',
|
||||||
|
'ﬔ' => 'մե',
|
||||||
|
'ﬕ' => 'մի',
|
||||||
|
'ﬖ' => 'վն',
|
||||||
|
'ﬗ' => 'մխ',
|
||||||
|
];
|
25
includes/vendor/symfony/polyfill-mbstring/bootstrap.php
generated
vendored
25
includes/vendor/symfony/polyfill-mbstring/bootstrap.php
generated
vendored
@ -132,6 +132,31 @@ if (!function_exists('mb_str_split')) {
|
|||||||
function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); }
|
function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_str_pad')) {
|
||||||
|
function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_ucfirst')) {
|
||||||
|
function mb_ucfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_lcfirst')) {
|
||||||
|
function mb_lcfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_trim')) {
|
||||||
|
function mb_trim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_trim($string, $characters, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_ltrim')) {
|
||||||
|
function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_ltrim($string, $characters, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_rtrim')) {
|
||||||
|
function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_rtrim($string, $characters, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (extension_loaded('mbstring')) {
|
if (extension_loaded('mbstring')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
26
includes/vendor/symfony/polyfill-mbstring/bootstrap80.php
generated
vendored
26
includes/vendor/symfony/polyfill-mbstring/bootstrap80.php
generated
vendored
@ -93,7 +93,7 @@ if (!function_exists('mb_strstr')) {
|
|||||||
function mb_strstr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strstr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
|
function mb_strstr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strstr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
|
||||||
}
|
}
|
||||||
if (!function_exists('mb_get_info')) {
|
if (!function_exists('mb_get_info')) {
|
||||||
function mb_get_info(?string $type = 'all'): array|string|int|false { return p\Mbstring::mb_get_info((string) $type); }
|
function mb_get_info(?string $type = 'all'): array|string|int|false|null { return p\Mbstring::mb_get_info((string) $type); }
|
||||||
}
|
}
|
||||||
if (!function_exists('mb_http_output')) {
|
if (!function_exists('mb_http_output')) {
|
||||||
function mb_http_output(?string $encoding = null): string|bool { return p\Mbstring::mb_http_output($encoding); }
|
function mb_http_output(?string $encoding = null): string|bool { return p\Mbstring::mb_http_output($encoding); }
|
||||||
@ -128,6 +128,30 @@ if (!function_exists('mb_str_split')) {
|
|||||||
function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); }
|
function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_str_pad')) {
|
||||||
|
function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_ucfirst')) {
|
||||||
|
function mb_ucfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_lcfirst')) {
|
||||||
|
function mb_lcfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_trim')) {
|
||||||
|
function mb_trim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_trim($string, $characters, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_ltrim')) {
|
||||||
|
function mb_ltrim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_ltrim($string, $characters, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_rtrim')) {
|
||||||
|
function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string { return p\Mbstring::mb_rtrim($string, $characters, $encoding); }
|
||||||
|
}
|
||||||
|
|
||||||
if (extension_loaded('mbstring')) {
|
if (extension_loaded('mbstring')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
5
includes/vendor/symfony/polyfill-mbstring/composer.json
generated
vendored
5
includes/vendor/symfony/polyfill-mbstring/composer.json
generated
vendored
@ -16,7 +16,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.1"
|
"php": ">=7.2"
|
||||||
},
|
},
|
||||||
"provide": {
|
"provide": {
|
||||||
"ext-mbstring": "*"
|
"ext-mbstring": "*"
|
||||||
@ -30,9 +30,6 @@
|
|||||||
},
|
},
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
|
||||||
"dev-main": "1.27-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
"url": "https://github.com/symfony/polyfill"
|
"url": "https://github.com/symfony/polyfill"
|
||||||
|
19
includes/vendor/symfony/polyfill-php72/LICENSE
generated
vendored
19
includes/vendor/symfony/polyfill-php72/LICENSE
generated
vendored
@ -1,19 +0,0 @@
|
|||||||
Copyright (c) 2015-2019 Fabien Potencier
|
|
||||||
|
|
||||||
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.
|
|
217
includes/vendor/symfony/polyfill-php72/Php72.php
generated
vendored
217
includes/vendor/symfony/polyfill-php72/Php72.php
generated
vendored
@ -1,217 +0,0 @@
|
|||||||
<?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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Symfony\Polyfill\Php72;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Nicolas Grekas <p@tchwork.com>
|
|
||||||
* @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
|
|
||||||
*
|
|
||||||
* @internal
|
|
||||||
*/
|
|
||||||
final class Php72
|
|
||||||
{
|
|
||||||
private static $hashMask;
|
|
||||||
|
|
||||||
public static function utf8_encode($s)
|
|
||||||
{
|
|
||||||
$s .= $s;
|
|
||||||
$len = \strlen($s);
|
|
||||||
|
|
||||||
for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {
|
|
||||||
switch (true) {
|
|
||||||
case $s[$i] < "\x80": $s[$j] = $s[$i]; break;
|
|
||||||
case $s[$i] < "\xC0": $s[$j] = "\xC2"; $s[++$j] = $s[$i]; break;
|
|
||||||
default: $s[$j] = "\xC3"; $s[++$j] = \chr(\ord($s[$i]) - 64); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return substr($s, 0, $j);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function utf8_decode($s)
|
|
||||||
{
|
|
||||||
$s = (string) $s;
|
|
||||||
$len = \strlen($s);
|
|
||||||
|
|
||||||
for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) {
|
|
||||||
switch ($s[$i] & "\xF0") {
|
|
||||||
case "\xC0":
|
|
||||||
case "\xD0":
|
|
||||||
$c = (\ord($s[$i] & "\x1F") << 6) | \ord($s[++$i] & "\x3F");
|
|
||||||
$s[$j] = $c < 256 ? \chr($c) : '?';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "\xF0":
|
|
||||||
++$i;
|
|
||||||
// no break
|
|
||||||
|
|
||||||
case "\xE0":
|
|
||||||
$s[$j] = '?';
|
|
||||||
$i += 2;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$s[$j] = $s[$i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return substr($s, 0, $j);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function php_os_family()
|
|
||||||
{
|
|
||||||
if ('\\' === \DIRECTORY_SEPARATOR) {
|
|
||||||
return 'Windows';
|
|
||||||
}
|
|
||||||
|
|
||||||
$map = [
|
|
||||||
'Darwin' => 'Darwin',
|
|
||||||
'DragonFly' => 'BSD',
|
|
||||||
'FreeBSD' => 'BSD',
|
|
||||||
'NetBSD' => 'BSD',
|
|
||||||
'OpenBSD' => 'BSD',
|
|
||||||
'Linux' => 'Linux',
|
|
||||||
'SunOS' => 'Solaris',
|
|
||||||
];
|
|
||||||
|
|
||||||
return $map[\PHP_OS] ?? 'Unknown';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function spl_object_id($object)
|
|
||||||
{
|
|
||||||
if (null === self::$hashMask) {
|
|
||||||
self::initHashMask();
|
|
||||||
}
|
|
||||||
if (null === $hash = spl_object_hash($object)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// On 32-bit systems, PHP_INT_SIZE is 4,
|
|
||||||
return self::$hashMask ^ hexdec(substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function sapi_windows_vt100_support($stream, $enable = null)
|
|
||||||
{
|
|
||||||
if (!\is_resource($stream)) {
|
|
||||||
trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, '.\gettype($stream).' given', \E_USER_WARNING);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$meta = stream_get_meta_data($stream);
|
|
||||||
|
|
||||||
if ('STDIO' !== $meta['stream_type']) {
|
|
||||||
trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', \E_USER_WARNING);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// We cannot actually disable vt100 support if it is set
|
|
||||||
if (false === $enable || !self::stream_isatty($stream)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// The native function does not apply to stdin
|
|
||||||
$meta = array_map('strtolower', $meta);
|
|
||||||
$stdin = 'php://stdin' === $meta['uri'] || 'php://fd/0' === $meta['uri'];
|
|
||||||
|
|
||||||
return !$stdin
|
|
||||||
&& (false !== getenv('ANSICON')
|
|
||||||
|| 'ON' === getenv('ConEmuANSI')
|
|
||||||
|| 'xterm' === getenv('TERM')
|
|
||||||
|| 'Hyper' === getenv('TERM_PROGRAM'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function stream_isatty($stream)
|
|
||||||
{
|
|
||||||
if (!\is_resource($stream)) {
|
|
||||||
trigger_error('stream_isatty() expects parameter 1 to be resource, '.\gettype($stream).' given', \E_USER_WARNING);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('\\' === \DIRECTORY_SEPARATOR) {
|
|
||||||
$stat = @fstat($stream);
|
|
||||||
// Check if formatted mode is S_IFCHR
|
|
||||||
return $stat ? 0020000 === ($stat['mode'] & 0170000) : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return \function_exists('posix_isatty') && @posix_isatty($stream);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static function initHashMask()
|
|
||||||
{
|
|
||||||
$obj = (object) [];
|
|
||||||
self::$hashMask = -1;
|
|
||||||
|
|
||||||
// check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below
|
|
||||||
$obFuncs = ['ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush'];
|
|
||||||
foreach (debug_backtrace(\PHP_VERSION_ID >= 50400 ? \DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) {
|
|
||||||
if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \in_array($frame['function'], $obFuncs)) {
|
|
||||||
$frame['line'] = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!empty($frame['line'])) {
|
|
||||||
ob_start();
|
|
||||||
debug_zval_dump($obj);
|
|
||||||
self::$hashMask = (int) substr(ob_get_clean(), 17);
|
|
||||||
}
|
|
||||||
|
|
||||||
self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function mb_chr($code, $encoding = null)
|
|
||||||
{
|
|
||||||
if (0x80 > $code %= 0x200000) {
|
|
||||||
$s = \chr($code);
|
|
||||||
} elseif (0x800 > $code) {
|
|
||||||
$s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
|
|
||||||
} elseif (0x10000 > $code) {
|
|
||||||
$s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
|
|
||||||
} else {
|
|
||||||
$s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('UTF-8' !== $encoding = $encoding ?? mb_internal_encoding()) {
|
|
||||||
$s = mb_convert_encoding($s, $encoding, 'UTF-8');
|
|
||||||
}
|
|
||||||
|
|
||||||
return $s;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function mb_ord($s, $encoding = null)
|
|
||||||
{
|
|
||||||
if (null === $encoding) {
|
|
||||||
$s = mb_convert_encoding($s, 'UTF-8');
|
|
||||||
} elseif ('UTF-8' !== $encoding) {
|
|
||||||
$s = mb_convert_encoding($s, 'UTF-8', $encoding);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (1 === \strlen($s)) {
|
|
||||||
return \ord($s);
|
|
||||||
}
|
|
||||||
|
|
||||||
$code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;
|
|
||||||
if (0xF0 <= $code) {
|
|
||||||
return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;
|
|
||||||
}
|
|
||||||
if (0xE0 <= $code) {
|
|
||||||
return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;
|
|
||||||
}
|
|
||||||
if (0xC0 <= $code) {
|
|
||||||
return (($code - 0xC0) << 6) + $s[2] - 0x80;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $code;
|
|
||||||
}
|
|
||||||
}
|
|
35
includes/vendor/symfony/polyfill-php72/README.md
generated
vendored
35
includes/vendor/symfony/polyfill-php72/README.md
generated
vendored
@ -1,35 +0,0 @@
|
|||||||
Symfony Polyfill / Php72
|
|
||||||
========================
|
|
||||||
|
|
||||||
This component provides functions added to PHP 7.2 core:
|
|
||||||
|
|
||||||
- [`spl_object_id`](https://php.net/spl_object_id)
|
|
||||||
- [`stream_isatty`](https://php.net/stream_isatty)
|
|
||||||
|
|
||||||
And also functions added to PHP 7.2 mbstring:
|
|
||||||
|
|
||||||
- [`mb_ord`](https://php.net/mb_ord)
|
|
||||||
- [`mb_chr`](https://php.net/mb_chr)
|
|
||||||
- [`mb_scrub`](https://php.net/mb_scrub)
|
|
||||||
|
|
||||||
On Windows only:
|
|
||||||
|
|
||||||
- [`sapi_windows_vt100_support`](https://php.net/sapi_windows_vt100_support)
|
|
||||||
|
|
||||||
Moved to core since 7.2 (was in the optional XML extension earlier):
|
|
||||||
|
|
||||||
- [`utf8_encode`](https://php.net/utf8_encode)
|
|
||||||
- [`utf8_decode`](https://php.net/utf8_decode)
|
|
||||||
|
|
||||||
Also, it provides constants added to PHP 7.2:
|
|
||||||
|
|
||||||
- [`PHP_FLOAT_*`](https://php.net/reserved.constants#constant.php-float-dig)
|
|
||||||
- [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family)
|
|
||||||
|
|
||||||
More information can be found in the
|
|
||||||
[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
|
|
||||||
|
|
||||||
License
|
|
||||||
=======
|
|
||||||
|
|
||||||
This library is released under the [MIT license](LICENSE).
|
|
57
includes/vendor/symfony/polyfill-php72/bootstrap.php
generated
vendored
57
includes/vendor/symfony/polyfill-php72/bootstrap.php
generated
vendored
@ -1,57 +0,0 @@
|
|||||||
<?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\Php72 as p;
|
|
||||||
|
|
||||||
if (\PHP_VERSION_ID >= 70200) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!defined('PHP_FLOAT_DIG')) {
|
|
||||||
define('PHP_FLOAT_DIG', 15);
|
|
||||||
}
|
|
||||||
if (!defined('PHP_FLOAT_EPSILON')) {
|
|
||||||
define('PHP_FLOAT_EPSILON', 2.2204460492503E-16);
|
|
||||||
}
|
|
||||||
if (!defined('PHP_FLOAT_MIN')) {
|
|
||||||
define('PHP_FLOAT_MIN', 2.2250738585072E-308);
|
|
||||||
}
|
|
||||||
if (!defined('PHP_FLOAT_MAX')) {
|
|
||||||
define('PHP_FLOAT_MAX', 1.7976931348623157E+308);
|
|
||||||
}
|
|
||||||
if (!defined('PHP_OS_FAMILY')) {
|
|
||||||
define('PHP_OS_FAMILY', p\Php72::php_os_family());
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('\\' === \DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) {
|
|
||||||
function sapi_windows_vt100_support($stream, $enable = null) { return p\Php72::sapi_windows_vt100_support($stream, $enable); }
|
|
||||||
}
|
|
||||||
if (!function_exists('stream_isatty')) {
|
|
||||||
function stream_isatty($stream) { return p\Php72::stream_isatty($stream); }
|
|
||||||
}
|
|
||||||
if (!function_exists('utf8_encode')) {
|
|
||||||
function utf8_encode($string) { return p\Php72::utf8_encode($string); }
|
|
||||||
}
|
|
||||||
if (!function_exists('utf8_decode')) {
|
|
||||||
function utf8_decode($string) { return p\Php72::utf8_decode($string); }
|
|
||||||
}
|
|
||||||
if (!function_exists('spl_object_id')) {
|
|
||||||
function spl_object_id($object) { return p\Php72::spl_object_id($object); }
|
|
||||||
}
|
|
||||||
if (!function_exists('mb_ord')) {
|
|
||||||
function mb_ord($string, $encoding = null) { return p\Php72::mb_ord($string, $encoding); }
|
|
||||||
}
|
|
||||||
if (!function_exists('mb_chr')) {
|
|
||||||
function mb_chr($codepoint, $encoding = null) { return p\Php72::mb_chr($codepoint, $encoding); }
|
|
||||||
}
|
|
||||||
if (!function_exists('mb_scrub')) {
|
|
||||||
function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? mb_internal_encoding() : $encoding; return mb_convert_encoding($string, $encoding, $encoding); }
|
|
||||||
}
|
|
35
includes/vendor/symfony/polyfill-php72/composer.json
generated
vendored
35
includes/vendor/symfony/polyfill-php72/composer.json
generated
vendored
@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "symfony/polyfill-php72",
|
|
||||||
"type": "library",
|
|
||||||
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
|
|
||||||
"keywords": ["polyfill", "shim", "compatibility", "portable"],
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"license": "MIT",
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicolas Grekas",
|
|
||||||
"email": "p@tchwork.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.1"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": { "Symfony\\Polyfill\\Php72\\": "" },
|
|
||||||
"files": [ "bootstrap.php" ]
|
|
||||||
},
|
|
||||||
"minimum-stability": "dev",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-main": "1.27-dev"
|
|
||||||
},
|
|
||||||
"thanks": {
|
|
||||||
"name": "symfony/polyfill",
|
|
||||||
"url": "https://github.com/symfony/polyfill"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user